package removepanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import java.awt.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Frame1 extends JFrame {
JPanel contentPane;
JPanel jPanel1 = new JPanel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(500, 400));
setTitle("Frame Title");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setBounds(new Rectangle(18, 16, 369, 213));
jButton1.setBounds(new Rectangle(38, 254, 151, 42));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jButton2.setText("jButton2");
jButton3.setBounds(new Rectangle(207, 255, 171, 41));
jButton3.setText("jButton3");
jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));
contentPane.add(jPanel1);
jPanel1.add(jButton2);
contentPane.add(jButton1);
contentPane.add(jButton3);
panelWidth = jPanel1.getWidth();
panelHeight = jPanel1.getHeight();
panelX = jPanel1.getX();
panelY = jPanel1.getY();
}
//创建新面板
JPanel pane = new Panel1();
//创建新面板
JPanel pane1 = new Panel2();
int panelWidth = 0;
int panelHeight = 0;
int panelX = 0;
int panelY = 0;
public void jButton1_actionPerformed(ActionEvent e) {
//设置面板的的大小与以前的面板大小一致
pane.setSize(panelWidth, panelHeight);
//设置面板边框
pane.setBorder(BorderFactory.createEtchedBorder());
//设置面板的位置与以前的面板位置一致
pane.setLocation(panelX, panelY);
//设置重画
Graphics Gra = contentPane.getGraphics();
//移出面板
contentPane.remove(jPanel1);
//添加面板
contentPane.add(pane);
//更新面板
contentPane.update(Gra);
this.show();
jPanel1 = pane;
}
public void jButton3_actionPerformed(ActionEvent e) {
//设置面板的的大小与以前的面板大小一致
pane1.setSize(panelWidth, panelHeight);
//设置面板边框
pane1.setBorder(BorderFactory.createEtchedBorder());
//设置面板的位置与以前的面板位置一致
pane1.setLocation(panelX, panelY);
//设置重画
Graphics Gra = contentPane.getGraphics();
//移出面板
contentPane.remove(jPanel1);
//添加面板
contentPane.add(pane1);
//更新面板
contentPane.update(Gra);
this.show();
jPanel1 = pane1;
}
}
class Frame1_jButton3_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton3_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}
class Frame1_jButton1_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
public class Panel1 extends JPanel {
public Panel1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(null);
jButton1.setBounds(new Rectangle(24, 13, 229, 56));
jButton1.setText("jButton1");
this.add(jButton1);
}
JButton jButton1 = new JButton();
}
public class Panel2 extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
JButton jButton1 = new JButton();
public Panel2() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(borderLayout1);
jButton1.setText("jButton1");
this.add(jButton1, java.awt.BorderLayout.NORTH);
}
}