繁体   English   中英

Java Swing,从布尔值更改文本值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM