Java ActionListener 显示错误输出
Java ActionListener displaying false output
我在 Java (Eclipse) 中的 ActionListener 有问题。
该程序应该问你关于数学中不同主题的问题。这是代码的一部分,其中包含问题:
public Frame () {
c = getContentPane();
c.setLayout(new BorderLayout());
menuBar = new JMenuBar();
menu = new JMenu("Test");
menu.setMnemonic(KeyEvent.VK_A);
addition = new JMenuItem("Addition");
addition.setMnemonic(KeyEvent.VK_B);
menu.add(addition);
minus = new JMenuItem("Subtraction");
minus.setMnemonic(KeyEvent.VK_C);
menu.add(minus);
setJMenuBar(menuBar);
menuBar.add(menu);
answer = new JButton("Answer");
c.add(answer, BorderLayout.SOUTH);
next = new JButton("Next");
c.add(next, BorderLayout.EAST);
back = new JButton("Back");
c.add(back, BorderLayout.WEST);
beschriftung = new JLabel();
beschriftung.setText("Welcome! Please choose your desired operation at the top.");
beschriftung.setVerticalTextPosition(JLabel.CENTER);
beschriftung.setHorizontalAlignment(JLabel.CENTER);
c.add(beschriftung,BorderLayout.CENTER);
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i + j;
beschriftung.setText("Next Question: " + i + "+" + j);
}
});
addition.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
beschriftung.setText("Addition Questions!");
c.remove(nextminus);
next = new JButton("Next");
c.add(next, BorderLayout.EAST);
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent b) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i + j;
beschriftung.setText("Next Question: " + i + "+" + j);
}
});
answer2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent d) {
beschriftung.setText(i + "+" + j + "= " + k);
}
});
}
});
minus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
beschriftung.setText("Subtraction Questions!");
c.remove(next);
nextminus = new JButton("Next!");
c.add(nextminus, BorderLayout.EAST);
nextminus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent f) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i - j;
beschriftung.setText("Next Question: " + i + "-" + j);
}
});
answer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent g) {
beschriftung.setText(i + "-" + j + "= " + k);
}
});
}
});
}
当我在添加选项卡中单击 JButton "answer" 时,它没有输出任何内容。
有人知道解决方案吗?
您似乎将动作侦听器设置到了错误的按钮。尝试在添加菜单栏项的动作侦听器中使用 answer.addActionListener()
而不是 answer2.addActionListener()
。
我在 Java (Eclipse) 中的 ActionListener 有问题。 该程序应该问你关于数学中不同主题的问题。这是代码的一部分,其中包含问题:
public Frame () {
c = getContentPane();
c.setLayout(new BorderLayout());
menuBar = new JMenuBar();
menu = new JMenu("Test");
menu.setMnemonic(KeyEvent.VK_A);
addition = new JMenuItem("Addition");
addition.setMnemonic(KeyEvent.VK_B);
menu.add(addition);
minus = new JMenuItem("Subtraction");
minus.setMnemonic(KeyEvent.VK_C);
menu.add(minus);
setJMenuBar(menuBar);
menuBar.add(menu);
answer = new JButton("Answer");
c.add(answer, BorderLayout.SOUTH);
next = new JButton("Next");
c.add(next, BorderLayout.EAST);
back = new JButton("Back");
c.add(back, BorderLayout.WEST);
beschriftung = new JLabel();
beschriftung.setText("Welcome! Please choose your desired operation at the top.");
beschriftung.setVerticalTextPosition(JLabel.CENTER);
beschriftung.setHorizontalAlignment(JLabel.CENTER);
c.add(beschriftung,BorderLayout.CENTER);
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i + j;
beschriftung.setText("Next Question: " + i + "+" + j);
}
});
addition.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
beschriftung.setText("Addition Questions!");
c.remove(nextminus);
next = new JButton("Next");
c.add(next, BorderLayout.EAST);
next.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent b) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i + j;
beschriftung.setText("Next Question: " + i + "+" + j);
}
});
answer2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent d) {
beschriftung.setText(i + "+" + j + "= " + k);
}
});
}
});
minus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
beschriftung.setText("Subtraction Questions!");
c.remove(next);
nextminus = new JButton("Next!");
c.add(nextminus, BorderLayout.EAST);
nextminus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent f) {
i = 1+dice.nextInt(99);
j = 1+dice.nextInt(99);
k = i - j;
beschriftung.setText("Next Question: " + i + "-" + j);
}
});
answer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent g) {
beschriftung.setText(i + "-" + j + "= " + k);
}
});
}
});
}
当我在添加选项卡中单击 JButton "answer" 时,它没有输出任何内容。
有人知道解决方案吗?
您似乎将动作侦听器设置到了错误的按钮。尝试在添加菜单栏项的动作侦听器中使用 answer.addActionListener()
而不是 answer2.addActionListener()
。