Как сделать текстовые поля видимыми при нажатии кнопки? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть два текстовых поля, которые я делаю невидимыми при инициализации формы.То, что я хочу, это следующее.

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 голосов
/ 14 февраля 2019

Это, вероятно, потому что окно и графический интерфейс уже были созданы с невидимыми кнопками.Когда вы просто устанавливаете для них видимое значение true, он не знает, как их переписать.Вы можете попробовать:

this.revalidate();  //Here this being the jframe
this.repaint();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...