如何在单击按钮时使文本字段可见?

时间:2019-02-14 09:37:05

标签: java jframe

在初始化表单时,我有两个文本字段不可见。 我想发生的事情如下。

enter image description here

,然后单击按钮时,它们看起来像这样。

enter image description here

我尝试过在初始化表单时使文本字段不可见,然后单击按钮使文本字段再次可见时触发动作执行事件。

import javax.swing.JFrame;

public class Weather extends javax.swing.JFrame {


            public Weather() {
            initComponents();
            this.jTextField3.setVisible(false);
            this.jTextField10.setVisible(false);



 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    this.jTextField10.setVisible(true);
    this.jTextField3.setVisible(true);
}                                       

     public static void main(String args[]) {


    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Weather().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
etc.. 
etc...

}

在C#中,这种使事物可见和不可见的方法有效,但相同的逻辑不适用于Java。当我单击按钮时,什么也没有发生。这两个文本字段只是保持不可见。

当我在初始化表单时不使文本字段不可见并且通过按钮单击的actionevent方法在单击按钮时使它们不可见时,它将起作用。

   private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    this.jTextField10.setVisible(false);
    this.jTextField3.setVisible(false);
}                   

为什么我只能通过单击按钮使文本字段不可见,而不能通过单击按钮使文本字段可见?

1 个答案:

答案 0 :(得分:1)

这可能是因为窗口和GUI已经在按钮不可见的情况下创建了。当您将它们设置为visible true时,它不知道如何重写它们。您可以尝试:

this.revalidate();  //Here this being the jframe
this.repaint();