【发布时间】:2014-05-10 23:01:29
【问题描述】:
在第一类文件中创建了 GUI
public class TicTac extends JFrame {
TicTacEvent tictac = new TicTacEvent(this);
JPanel row1 = new JPanel();
JButton[][] boxes = new JButton[4][4];
JButton play = new JButton("Play");
JButton restart = new JButton("Restart");
JTextField blank1 = new JTextField();
JTextField blank2 = new JTextField();
JOptionPane win = new JOptionPane("Winner");
ImageIcon back = new ImageIcon("cardback.jpg");
public TicTac() {
super ("Tic Tac Toe");
setSize (800,650);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FlowLayout layout = new FlowLayout();
setLayout(layout);
int name = 0;
String newname;
GridLayout layout1 = new GridLayout(5, 4, 10, 10);
row1.setLayout(layout1);
for (int x=0; x<=3; x++){
for (int y=0; y<=3; y++){
name = name + 1;
newname = Integer.toString(name);
boxes[x][y] = new JButton(newname);
boxes[x][y].setIcon(back);
row1.add(boxes[x][y]);
}
}
row1.add(blank1);
row1.add(play);
row1.add(blank2);
row1.add(restart);
add (row1);
play.addActionListener(tictac);
for (int x=0; x<=3; x++){
for (int y=0; y<=3; y++){
boxes[x][y].addActionListener(tictac);
}
}
setVisible(true);
}
我想做的是创建一个重启按钮,但是我的方法没有调用
Thread playing;
Thread restarting;
public void actionPerformed(ActionEvent event){
String command = event.getActionCommand();
if (command.equals("Play")) {
startPlaying();
}
if (command.equals("Restart")){
restart();
我的 Restart 方法根本没有调用,我只在方法中尝试了随机 setText ,但它仍然不会这样做,我不知道为什么,没有错误。稍后我将要解决的另一个问题是修复我的重启方法,我不确定它是否会起作用,是否可以只调用公共方法“TicTac”,在不同的类中重新创建 GUI?
我找了这么久还是找不到办法?
public void restart();
TicTac restartok = new TicTac();
restartok.row1.add(restartok.blank1);
restartok.row1.add(restartok.play);
restartok.row1.add(restartok.blank2);
restartok.row1.add(restartok.restart);
restartok.add (restartok.row1);
restartok.play.addActionListener(restartok.tictac);
for (int x=0; x<=3; x++){
for (int y=0; y<=3; y++){
restartok.boxes[x][y].addActionListener(restartok.tictac);
}
}
}
【问题讨论】: