【问题标题】:Java Swing, Changing text value from BooleansJava Swing,从布尔值更改文本值
【发布时间】:2017-12-02 15:48:47
【问题描述】:

所以,我只是在尝试使用 GUI,我希望在按下按钮后更改文本值。

下面是一些代码:(注意,Acceleration 是在类中声明的私有布尔值)

JButton btnAcceleration = new JButton("Acceleration");
    btnAcceleration.setBounds(10, 142, 121, 23);
    btnAcceleration.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Acceleration = 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,结果一样)

谢谢

【问题讨论】:

    标签: java swing boolean textfield


    【解决方案1】:

    你的问题是一种神奇的思维。您正在创建 GUI 时创建 ValueA 字段,如果布尔值为真,您有代码使其可见,但此代码仅在 GUI 创建时调用一次,并且在布尔值更改时不会神奇地重新调用。要解决这个问题,只需移动该代码

    ValueA.setText("Force");
    ValueA.setVisible(true);
    

    到 ActionListener 代码,以便在调用侦听器时调用它。

    请注意,当您更改组件的可见性时,您需要在其容器上调用 revalidate()repaint() 以便准确显示。

    顺便说一句,你会想学习和使用Java naming conventions。变量名应全部以小写字母开头,而类名应以大写字母开头。学习这一点并遵循这一点将使我们能够更好地理解您的代码,并让您更好地理解其他人的代码。

    【讨论】:

    • 啊,谢谢大家,过去几个月一直在学习 Java,刚刚决定深入了解一下 GUI,感谢您的反馈
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2021-11-28
    • 2016-07-11
    相关资源
    最近更新 更多