Проблема с setVisible (логическим) - PullRequest
0 голосов
/ 27 марта 2011

У меня есть JFrame с некоторым компонентом. Я хочу, чтобы рамка исчезла при нажатии на специальную кнопку, например exit button.

Я написал этот код в кнопке выхода

this.setvisible(false);

но он скрывает только компонент, а рамка не исчезает.

Что я могу сделать, когда я нажимаю exit button, рамка исчезает?

Ответы [ 3 ]

3 голосов
/ 27 марта 2011

Вот пример кнопки, которая скрывает рамку:

final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
final JButton hideButton = new JButton("hide frame");
frame.add(hideButton);
hideButton.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
      frame.setVisible(false);
   }

});

frame.setVisible(true);
frame.pack();
2 голосов
/ 27 марта 2011

В вашем звонке this.setVisible(false), this, вероятно, относится к кнопке, а не к рамке.

Вам нужно вызывать setVisible () для кадра, а не для кнопки.

Также убедитесь, что вы вызываете dispose () для фрейма, чтобы очистить все ресурсы.

Кроме того, вы также должны использовать

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

во время создания рамки, чтобы убедиться, что окна правильно закрыты и расположены, когда пользователь нажимает «стандартную» кнопку закрытия в верхнем правом углу (в Windows).

Этот урок также может помочь вам лучше понять, что происходит:

http://download.oracle.com/javase/tutorial/uiswing/components/frame.html

0 голосов
/ 27 марта 2011

вызовите его на объекте JFrame. пример: // when exit is pressed

fr.setVisible(false); // fr is a reference to object of type JFrame `

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...