У меня есть 2 JFrame
s f1
и f2
оба с кнопками b1
и b2
соответственно.Как закрыть предыдущие JFrames при открытии нового?
Кнопки b1
и b2
переключателя кадров, то есть, если b1
щелкают открывает f2
и если b2
нажатии открывает f1
.
Я хочу, чтобы моя программа, чтобы закрыть предыдущий JFrame
при попытке открыть новый JFrame, то есть, если b1 щелкают он должен закрыть/скрыть f1
и открыть f2
и наоборот.
Я пробовал setVisible(false)
, но он не работает.
Буду признателен за любую помощь или предложения.
Вот мой код:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class m extends JFrame implements ActionListener
{
static JFrame f1,f2;
static JButton b1,b2;
public m()
{
f1();
}
public void f1()
{
JFrame f1=new JFrame("frame 1");
JButton b1=new JButton("frame 2");
JLabel l1=new JLabel("FRAME 1");
f1.setSize(600,600);
b1.setBounds(300,300,100,100);
l1.setBounds(300,150,100,100);
b1.addActionListener(this);
f1.add(b1);
f1.add(l1);
f1.setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public void f2()
{
JFrame f2=new JFrame("frame 2");
JButton b2=new JButton("frame 1");
JLabel l2=new JLabel("FRAME 2");
f2.setSize(600,600);
b2.setBounds(300,300,100,100);
l2.setBounds(300,150,100,100);
b2.addActionListener(this);
f2.add(b2);
f2.add(l2);
f2.setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public static void main(String args[])
{
new m();
}
public void actionPerformed(ActionEvent e)
{
String bt=String.valueOf(e.getActionCommand());
if(bt=="frame 2")
{
f1.setVisible(false);
f2();
}
else if(bt=="frame 1")
{
f2.setVisible(false);
f1();
}
}
}
Возможный дубликат [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java) – Frakcool
@Mdlc, когда вы одобряете предложенные изменения, убедитесь, что нет ничего еще лучше, при редактировании Дорона все еще нужно было улучшить такие вещи, как формат кода! – Frakcool
@DoronYakovlevGolani, пожалуйста, исправьте также формат кода, когда вы предлагаете редактировать все, что вы можете в одном редактировании :) – Frakcool