2014-09-26 69 views
0

所以我想通過一個按鈕的變量從一個類按下另一個類,並不能完全弄清楚。按下按鈕會創建一個隨機數來模擬擲骰子,並將其添加到一個變量中,然後該變量被傳遞給棋盤類,該棋類將創建遊戲板,然後使用該變量來確定棋盤上的哪個空間玩家開啓。先謝謝你。從按鈕傳遞變量到另一個類

import java.awt.BorderLayout; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.io.FileNotFoundException; 
import java.util.Random; 

import javax.swing.ButtonGroup; 
import javax.swing.JButton; 
import javax.swing.JCheckBox; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JRadioButton; 
import javax.swing.JTextField; 


public class Game extends JPanel{ 
private JLabel lblP1Name, lblP2Name, lblRules, lblDiceRoll; 
private JTextField txtP1Name, txtP2Name; 
private JButton diceRoll; 
private JRadioButton rdP1, rdP2; 
private int dice; 
private static int countP1; 
private int countP2; 
private JPanel panelNorth; 

private void groupButton() { 

    ButtonGroup bg1 = new ButtonGroup(); 

    bg1.add(rdP1); 
    bg1.add(rdP2); 

    } 
public Game() throws FileNotFoundException { 
setLayout (new BorderLayout()); 




rdP1 = new JRadioButton("Player 1"); 
rdP2 = new JRadioButton("Player 2"); 
ButtonListener listener = new ButtonListener(); 
Player1 player1 = new Player1(countP1); 
Player2 player2 = new Player2(countP2); 
Board board = new Board(); 
Rules rules = new Rules(); 
JButton diceRoll = new JButton("Roll the dice!"); 
panelNorth = new JPanel(); 
panelNorth.setLayout(new GridLayout(1,3)); 
lblRules = new JLabel(rules.toString()); 

add(panelNorth, BorderLayout.NORTH); 
panelNorth.add(rdP1); 
panelNorth.add(diceRoll); 
panelNorth.add(rdP2); 

Card card = new Card(); 

add(player1, BorderLayout.WEST); 
add(player2, BorderLayout.EAST); 
add(lblRules, BorderLayout.SOUTH); 
add(board, BorderLayout.CENTER); 
diceRoll.addActionListener(listener); 
} 
private class ButtonListener implements ActionListener { 
    public void actionPerformed(ActionEvent diceRoll){ 
     Random random = new Random(); 
     dice = random.nextInt(6)+1; 


     if(rdP1.isSelected()){ 
      countP1 = countP1+dice; 
      if(countP1>48){ 
       countP1=countP1-48; 

      } 
     }else if(rdP2.isSelected()){ 
      countP2 = countP2+dice; 
      if(countP2>48){ 
       countP2=countP2-48; 

      } 
     } 

    } 
} 


} 
+4

你用什麼方法弄不清楚?你有沒有編寫任何代碼? – APerson 2014-09-26 22:12:32

+3

代碼價值1024字。 – 2014-09-26 22:14:12

回答

1

很簡單;只是使用參考。

實例類和通過參考:

Board board = new Board(); 
YourClass yourClass = new YourClass(board); 

這樣你可以設置局從類YourClass屬性。 這真的很簡單,你可以通過閱讀基本的Java書籍學會如何做到這一點。

+0

我知道如何使用構造函數並傳遞變量,但我不確定如何在已經實例化之後傳遞信息。 – user2974899 2014-09-26 22:23:07

+0

http://stackoverflow.com/questions/2036970/how-do-getters-and-setters-work – Dalton 2014-09-26 22:25:20

+0

對,但是我是否在countP1/countP2的主類中創建了getter?那我怎麼稱呼它給另一個班。每當我嘗試像我通常使用game.methodname那樣調用它時,它就不起作用。 – user2974899 2014-09-26 22:35:26

相關問題