I am creating the game pacman and if you get killed by the monster it takes you to a questions panel
So I am asking some questions and I have JButtons that are the multiple choice buttons such as A, B, C, etc...
But when you click on the button, it shows a bunch of errors on the terminal...What is the problem and how can I fix it??
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();
}
}
You're not actually setting the action command of the buttons, you're just setting the text.
When you try and access the action command in the action listener, the value is null
You need to call JButton#setActionCommand
to actually set, well, the action command
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.