私は現在Eclipseのドラッグ&ドロップ機能を使用していますが、デフォルトでJFrameに付属しているsetVisible(false);
というアプリケーションウィンドウを1つ持っていますが、JPanelで作成したJFrame 。ボタンでJFrameを閉じる
extend
のため、私はsetVisible(false or true);
には全く影響を及ぼしませんが、それでもなお真です。
マイコード:
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LibrarianMenu frame = new LibrarianMenu();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public LibrarianMenu() {
setTitle("Librarian");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 385, 230);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
.
.
. so on
ここで私は私のボタンを実行しようとしています:
btnLogout.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
LibrarianMenu frame = new LibrarianMenu();
frame.setVisible(false);
}
});
そのための任意のソリューション?
は、コンパイルの例を投稿してください。どちらの方法でも、新しく作成されたオブジェクトを参照するリファレンスではなく、 'setVisible(true)'と同じリファレンスで 'setVisible(false)'を呼び出す必要があります。 – Timmos
メインクラスのonClick、create it asフィールドにLibrarianMenuを作成してから、setVisibleをfalseに設定しないでください。ボタンをクリックすると別のLibrarianMenuが作成され、最初のものがそのまま残ります。 –
'SwingUtilities.windowForComponent(btnLogout).setVisible(false)'? – MadProgrammer