在初始化表单时,我有两个文本字段不可见。 我想发生的事情如下。
,然后单击按钮时,它们看起来像这样。
我尝试过在初始化表单时使文本字段不可见,然后单击按钮使文本字段再次可见时触发动作执行事件。
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);
}
为什么我只能通过单击按钮使文本字段不可见,而不能通过单击按钮使文本字段可见?
答案 0 :(得分:1)
这可能是因为窗口和GUI已经在按钮不可见的情况下创建了。当您将它们设置为visible true时,它不知道如何重写它们。您可以尝试:
this.revalidate(); //Here this being the jframe
this.repaint();