2014-09-26 70 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

相关问题