所以我的程序按钮不起作用。我有它,如果他们按下它们会改变一些变量,这些变量反过来改变文本的标签。尽可能地告诉我按下按钮时不会添加变量。我无法弄清楚什么是错的,但是我又是Java的新手......
无论如何,这是我的代码:
import javax.swing.JApplet;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JProgressBar;
import javax.swing.JFormattedTextField;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class qa extends JApplet {
int y=0;
int x=0;
int q=0;
/**
* Create the applet.
*/
public qa() {
getContentPane().setLayout(null);
JButton btnYes = new JButton("YES");
btnYes.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
y+=1;
q+=1;
}
});
btnYes.setBounds(135, 220, 85, 42);
getContentPane().add(btnYes);
JButton btnNo = new JButton("NO");
btnNo.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
x+=1;
q+=1;
}
});
btnNo.setBounds(230, 220, 85, 42);
getContentPane().add(btnNo);
JLabel lblNewLabel = new JLabel("Do you like pizza?");
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel.setBounds(0, 97, 450, 50);
getContentPane().add(lblNewLabel);
if (q>=1)
{
lblNewLabel.setText("Really?");
}
}
}
感谢您的帮助!
答案 0 :(得分:3)
不要使用NullLayout
MouseListener不适合JButton的监听器,所有MouseEvents都是在JButtons API中实现的并且正确
添加并使用Swing Action,分别为。 JButton的ActionListener
答案 1 :(得分:1)
一切都很好。只有您的if (q>=1)
与任何侦听器操作无关。这是指针。
将JLabel移到构造函数之外。
将lblNewLabel.setText("YES Really?");
放入您的mouseClicked()
方法中。
@Override
public void mouseClicked(MouseEvent arg0) {
y+=1;
q+=1;
if (q>2)
lblNewLabel.setText("YES Really?");
System.out.println("YES: " + y + " q :" + q);
}
});