001 package com.croftsoft.apps.jinput; 002 003 import net.java.games.input.Component; 004 import net.java.games.input.Controller; 005 import net.java.games.input.ControllerEnvironment; 006 007 /********************************************************************* 008 * Tests connecting to a joystick using JInput. 009 * 010 * @version 011 * $Id: Joystick.java,v 1.5 2005/12/19 02:26:05 croft Exp $ 012 * @since 013 * 2005-03-14 014 * @author 015 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 016 *********************************************************************/ 017 018 public final class Joystick 019 ////////////////////////////////////////////////////////////////////// 020 ////////////////////////////////////////////////////////////////////// 021 { 022 023 public static void main ( String [ ] args ) 024 ////////////////////////////////////////////////////////////////////// 025 { 026 final ControllerEnvironment controllerEnvironment 027 = ControllerEnvironment.getDefaultEnvironment ( ); 028 029 final Controller [ ] controllers 030 = controllerEnvironment.getControllers ( ); 031 032 if ( controllers.length == 0 ) 033 { 034 System.out.println ( "No controllers found." ); 035 036 return; 037 } 038 039 for ( int i = 0; i < controllers.length; i++ ) 040 { 041 Controller controller = controllers [ i ]; 042 043 System.out.println ( "Controller " + i + " *******************" ); 044 045 System.out.println ( controller.getName ( ) ); 046 047 System.out.println ( controller.getType ( ) ); 048 049 Controller [ ] childControllers = controller.getControllers ( ); 050 051 System.out.println ( "child controllers: " + childControllers.length ); 052 053 Component [ ] axes = controller.getComponents ( ); 054 055 for ( int j = 0; j < axes.length; j++ ) 056 { 057 Component axis = axes [ j ]; 058 059 System.out.println ( 060 "axis " + j + " isAnalog: " + axis.isAnalog ( ) ); 061 } 062 } 063 064 poll ( controllers [ 5 ] ); 065 } 066 067 public static void poll ( Controller controller ) 068 ////////////////////////////////////////////////////////////////////// 069 { 070 Component [ ] components = controller.getComponents ( ); 071 072 Float [ ] floats = new Float [ components.length ]; 073 074 String format = ""; 075 076 for ( int i = 0; i < components.length; i++ ) 077 { 078 format += "%" + ( i + 1 ) + "$+1.3f "; 079 } 080 081 format += "%n"; 082 083 final long endTime = System.currentTimeMillis ( ) + 30 * 1000; 084 085 while ( System.currentTimeMillis ( ) < endTime ) 086 { 087 if ( !controller.poll ( ) ) 088 { 089 break; 090 } 091 092 for ( int i = 0; i < components.length; i++ ) 093 { 094 Component component = components [ i ]; 095 096 floats [ i ] = new Float ( component.getPollData ( ) ); 097 } 098 099 System.out.printf ( format, ( Object [ ] ) floats ); 100 } 101 } 102 103 ////////////////////////////////////////////////////////////////////// 104 ////////////////////////////////////////////////////////////////////// 105 }