[英]Java Swing, Changing text value from Booleans
因此,我正在尝试使用GUI,并且希望在按下按钮后更改文本值。
下面是一些代码:(注意,Acceleration是在类中声明的Private Boolean)
JButton btnAcceleration = new JButton("Acceleration");
btnAcceleration.setBounds(10, 142, 121, 23);
btnAcceleration.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Acceleration = true;
}
});
这是使布尔值为true的按钮(单击后)
JTextField ValueA = new JTextField();
ValueA.setText("Value A");
ValueA.setBounds(490, 141, 66, 22);
contentPane.add(ValueA);
ValueA.setEditable(false);
ValueA.setVisible(false);
if (Acceleration) {
ValueA.setText("Force");
ValueA.setVisible(true);
}
这是我希望运行的所需代码。 当我测试GUI时,在控制台中没有出现任何错误,但是,此代码不起作用,文本字段也不会出现,即使可见,文本也不会改变吗? 有人知道怎么修这个东西吗? (我也尝试过启用TextEditiable,结果相同)
谢谢
您的问题是神奇的思考之一。 您正在创建GUI时创建ValueA字段,并且具有使布尔值为true时可见的代码,但是此代码在GUI创建时仅被调用一次,并且在更改布尔值时不会被神奇地调用。 要解决此问题,只需移动该代码
ValueA.setText("Force");
ValueA.setVisible(true);
到ActionListener代码,以便在调用侦听器时调用它。
请注意,在更改组件的可见性时,您需要在其容器上调用revalidate()
和repaint()
,以便准确地显示它。
顺便说一句,您将要学习和使用Java命名约定 。 变量名都应以小写字母开头,而类名应以大写字母开头。 学习并遵循此规则将使我们能够更好地理解您的代码,并使您能够更好地理解其他人的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.