import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ContentPanelSwitch {
public static void main(String[] args) {
final JFrame frame = new JFrame("内容面板切换");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(400, 300));
final JPanel panelA = new JPanel();
panelA.add(new JLabel("这里是面板A"));
final JPanel panelB = new JPanel();
panelB.add(new JLabel("这里是面板B"));
frame.setContentPane(panelA); //将面板A设为frame的内容面板
鼠标点击事件可把面板A切换为面板B
panelA.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//当在panelA上点击鼠标时,将frame内容切换为panelB
frame.remove(panelA);
frame.setContentPane(panelB);//将frame的内容面板切换为panelB
frame.revalidate();
frame.repaint();
}
});
//加入后可把切换为panelB的frame切换回panelA
panelB.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
frame.remove(panelB);
frame.setContentPane(panelA);
frame.revalidate();
frame.repaint();
}
});
frame.pack();
frame.setVisible(true); //以默认大小显示
}
}
另还可以用Swing GUI窗体 中的 应用程序样例窗体 通过菜单切换