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

How to make text fields visible upon button click?

我有两个文本字段,在初始化表单时将它们设置为不可见。 我想要发生的是以下内容。

然后当按钮被点击时,它们就会像这样出现。

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

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);
}                   

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

这可能是因为 window 和 GUI 已经创建,按钮不可见。当您将它们设置为 visible true 时,它​​不知道如何重写它们。你可以试试:

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