1

我已经添加了一个按钮来休息游戏,但我不知道如何添加一个监听器或者当我点击按钮时如何调用一个方法。请告诉我如何让重置按钮工作。谢谢你。

   private String[] board = new String[ 9 ]; // tic-tac-toe board
   private JTextArea outputArea; // for outputting moves
   private Player[] players; // array of Players
  private ServerSocket server; // server socket to connect with clients
  private int currentPlayer; // keeps track of player with current move
  private final static int PLAYER_X = 0; // constant for first player
   private final static int PLAYER_O = 1; // constant for second player
  private final static String[] MARKS = { "X", "O" }; // array of marks
  private ExecutorService runGame; // will run players
  private Lock gameLock; // to lock game for synchronization
  private Condition otherPlayerConnected; // to wait for other player
  private Condition otherPlayerTurn; // to wait for other player's turn
  private boolean win;
 public TicTacToeServer()
  {
  super( "Tic-Tac-Toe Server" ); // set title of window

  // create ExecutorService with a thread for each player
  runGame = Executors.newFixedThreadPool( 2 );
  gameLock = new ReentrantLock(); // create lock for game

  // condition variable for both players being connected
  otherPlayerConnected = gameLock.newCondition();

  // condition variable for the other player's turn
  otherPlayerTurn = gameLock.newCondition();      

  for ( int i = 0; i < 9; i++ )
     board[ i ] = new String( "" ); 
  players = new Player[ 2 ]; // create array of players
  currentPlayer = PLAYER_X; // set current player to first player

  try
  {
     server = new ServerSocket( 12345, 2 ); // set up ServerSocket
  } // end try
  catch ( IOException ioException ) 
  {
     ioException.printStackTrace();
     System.exit( 1 );
  } // end catch

  outputArea = new JTextArea(); // create JTextArea for output
  add( outputArea, BorderLayout.CENTER );
  JButton reset= new JButton ("Reset");
  add(reset, BorderLayout.SOUTH);
  reset.setActionCommand("reset");
  //reset.addActionListener(this);
  outputArea.setText( "Server awaiting connections\n" );


  setSize( 300, 300 ); // set size of window
  setVisible( true ); // show window
  } // end TicTacToeServer constructor
4

2 回答 2

0

你应该使用 ActionListener:

将其注册到按钮,实现将包含单击按钮后将自动调用的代码。这就是 java 事件系统的工作原理。

这是一个教程动作监听器

于 2012-07-18T06:25:58.090 回答
0

你可以像这样添加一个动作监听器

   reset.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e)
      {
         //Execute when button is pressed
      }        
    });      
于 2012-07-18T06:29:26.853 回答