gpt4 book ai didi

java - 为什么 JButton 不起作用?

转载 作者:行者123 更新时间:2023-12-02 07:00:11 25 4
gpt4 key购买 nike

我正在创建 pacman 游戏,如果你被怪物杀死,它会将你带到问题面板

所以我问了一些问题,我有 JButtons,它们是多项选择按钮,例如 A、B、C 等...

但是当您单击该按钮时,它在终端上显示一堆错误...问题是什么以及如何修复它?

public class QuestionPanel extends JPanel {
JRadioButton aButt, bButt, cButt, dButt, eButt; // buttons for the different colors the user can choose.

int fontsize = 15;
int ans = -1;
int rand;
MyPanel panel;

public QuestionPanel() {
panel = new MyPanel();
this.add(panel);
}

class MyPanel extends JPanel
{
UserPanel user; // used for all controls on the left
TextPanel text; // jtextarea for the quotation

public MyPanel()
{
this.setLayout(new GridLayout(0, 2));
user = new UserPanel();
text = new TextPanel();
this.add(user);
this.add(text);
}

// User panel has Jradiobutton, Jbutton, and scroll bar
class UserPanel extends JPanel implements ActionListener, AdjustmentListener // this is for the buttons and the scroll bar
{
JButton randbutton; // this is the random button

RadioButton radioB;
JScrollBar size; // size of the jScrollBar

public UserPanel()
{
setLayout(new GridLayout(3, 0));
setBackground(Color.lightGray);
randbutton = new JButton("PRESS FOR RANDOM QUESTION"); // random quote button
randbutton.addActionListener(this);
this.add(randbutton);

radioB = new RadioButton();
this.add(radioB);

size = new JScrollBar(JScrollBar.HORIZONTAL, 15, 1, 10, 20); // size of the scroll bar

size.addAdjustmentListener(this); // adding the scroll bar
this.add(size);
}

public void adjustmentValueChanged(AdjustmentEvent e) // this is for the size of the scroll bar
{
randommove = false;
fontsize = e.getValue(); // get the value of the scroll bar depending where you keep it or turn it
text.repaint();
}

// seperate class for radio button to allow three buttons
// next to each other
class RadioButton extends JPanel implements ActionListener
{
ButtonGroup answers; // what color it is
JButton a,b,c,d;

public RadioButton()
{
a = new JButton("A"); // A BUTTON
a.addActionListener(this);
this.add(a);

b = new JButton("B"); //b button
b.addActionListener(this);
this.add(b);

c = new JButton("C");
c.addActionListener(this);
this.add(c);

d = new JButton("D");
d.addActionListener(this);
this.add(d);


}

public void actionPerformed(ActionEvent e)
{
randommove = false;
String command = e.getActionCommand();

if(rand == 0 && command.equals("A"))
{
cards.show(c,"Game");
}
else
{
cards.show(c,"Wrong");
System.out.println("hello");
}

if(rand == 1 && command.equals("B"))
{
cards.show(c,"Game");
}
else
{
cards.show(c,"Wrong");
System.out.println("hello");

}
if(rand == 2 && command.equals("D"))
{
cards.show(c,"Game");
}
else
{
cards.show(c,"Wrong");
System.out.println("hello");

}
if(rand == 3 && command.equals("B"))
{
cards.show(c,"Game");
}
else{
cards.show(c,"Wrong");
System.out.println("hello");

}






text.repaint();
}
}

public void actionPerformed(ActionEvent e)
{
randommove = true;
text.repaint();
}
}

最佳答案

您实际上并没有设置按钮的操作命令,您只是设置文本。

当您尝试访问操作监听器中的操作命令时,值为 null

您需要调用JButton#setActionCommand实际设置操作命令

关于java - 为什么 JButton 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com