我有2 JFrame
s f1
和f2
都分別有按鈕b1
和b2
。如何關閉以前的JFrames,同時打開新的?
如果b1
被點擊它打開f2
並且如果被點擊b2
它打開f1
按鈕b1
和b2
開關幀,即。
我想我的程序試圖打開一個新的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-i-compare-strings-in-java) – Frakcool
@Mdlc當你批准建議的編輯時,請確保沒有任何東西否則要改進,在Doron的編輯中還有一些需要改進的地方,例如代碼格式! – Frakcool
@DoronYakovlevGolani請修正代碼格式,當你建議編輯改進一切,你可以在一個單一的編輯:) – Frakcool