我试着弄清楚了2天,没有任何帮助。我试了100多种组合,一无所获。这是我最后的机会了。我正在编写一款简单的游戏。1个JFrame,几个jpanel。经过一些行动,我需要"再次播放按钮"会出现。在JPanel构造函数中添加一个按钮(默认可见性)会显示它的所有时间,在其他方法中添加setVisible(false)然后调用(true)是行不通的。我试过revalidate(), rapaint()等
public class Game extends JPanel implements ActionListener{
private JButton playAgain = new JButton();
public Game(){
setFocusable(true);
requestFocus();
this.setPreferredSize(new Dimension(800,600));
this.setLayout(null);
addButton();
this.setVisible(true);
}
private void addButton() {
playAgain.setBounds(600, 550, 200, 50);
playAgain.addActionListener(this);
playAgain.setBorder(null);
playAgain.setCursor(new Cursor(Cursor.HAND_CURSOR));
playAgain.setContentAreaFilled(false);
playAgain.setVisible(false);
this.add(playAgain);
}
private void showButton() {
playAgain.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(king1.isKingStopped()){
gameFinished = true;
addButton();
//showButton(); // doesnt work ;/
}
showButton()函数不改变可见性。这只是代码中有问题的部分,而不是全部。谢谢。
试着把
playAgain = new JButton();
在你的构造函数中,比如:
public class Game extends JPanel implements ActionListener{
private JButton playAgain;
public Game(){
playAgain = new JButton();
}
}
我找到了!将JButton更改为"static"并将showButton()更改为static void。按钮现在是可见的。有人知道为什么吗?:)也许它能帮助别人:)谢谢大家。
private static JButton playAgain();
private static showButton();