Я новичок в Java Swing и пытаюсь научиться закрывать один кадр, не закрывая другой, с помощью кнопки. Например, у меня есть фрейм1/окно, в котором есть только кнопка входа в систему. Как только я нажимаю кнопку входа в систему, появляется другое окноframe2. На фрейме 2 у меня есть только образец JLabel «Привет и добро пожаловать», кнопка «Выход». Я хочу иметь возможность нажать кнопку «Выход» в кадре 2, и окно кадра 2 должно закрыться, но окно кадра 1 все еще будет открыто. Я попробовал setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE), но это сработает, только если я нажму на значок x в правом верхнем углу окна Frame2. Кто-нибудь знает способ закрыть рамку при нажатии на кнопку?
public class Frame1 extends JFrame implements ActionListener{
private static JButton login = new JButton("Login");
private static JFrame f = new JFrame("Login");
Frame1(){
f.setSize(1000,750);
f.setLocation(750, 250);
login.setBounds(250, 350, 150, 30);
f.add(login);
f.setLayout(null);
f.setVisible(true);
login.addActionListener(this);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == login){
Frame2.frame2windown();
}
}
public static void main(String [] args){
Frame1 login1 = new Frame1();
}
}
public class Frame2 extends JFrame implements ActionListener{
private static JButton logout = new JButton("Logout");
private static JLabel jb1 = new JLabel ("Hello And Welcome");
private static JFrame f = new JFrame("Log Out");
Frame2(){
f.setSize(1000,750);
f.setLocation(750, 250);
jb1.setBounds(250, 150, 350, 30);
logout.setBounds(250, 350, 150, 30);
f.add(logout);
f.add(jb1);
f.setLayout(null);
f.setVisible(true);
logout.addActionListener(this);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent a){
if(a.getSource() == logout){
dispose();
WindowEvent closeWindow = new WindowEvent(this, JFrame.DISPOSE_ON_CLOSE);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(closeWindow);
}
}
public static void frame2windown(){
Frame2 f2 = new Frame2();
}
}
Подробнее здесь: https://stackoverflow.com/questions/700 ... nother-one
Как закрыть окно JFrame, не закрывая другое? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение