请各位大哥帮看下下面的代码,我想remove掉原来的一个jpanel,然后在在它的位置上显示另一个jpanel,不知道这段代码为什么无法实现呢?帮帮忙,谢谢import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Frame1
extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JButton jButton1 = new JButton();
JTextField jTextField1 = new JTextField(); 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(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel2.setBorder(BorderFactory.createEtchedBorder());
jButton1.setText("测试");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jTextField1.setText("jTextField1");
contentPane.add(jPanel1, java.awt.BorderLayout.NORTH);
jPanel1.add(jButton1);
contentPane.add(jPanel2, java.awt.BorderLayout.WEST);
jPanel2.add(jTextField1);
} public void jButton1_actionPerformed(ActionEvent e) {
panel p=new panel();
contentPane.remove(jPanel2);
contentPane.add(p, java.awt.BorderLayout.WEST);
this.show();
}
}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);
}
}
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Frame1
extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JButton jButton1 = new JButton();
JTextField jTextField1 = new JTextField(); 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(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel2.setBorder(BorderFactory.createEtchedBorder());
jButton1.setText("测试");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jTextField1.setText("jTextField1");
contentPane.add(jPanel1, java.awt.BorderLayout.NORTH);
jPanel1.add(jButton1);
contentPane.add(jPanel2, java.awt.BorderLayout.WEST);
jPanel2.add(jTextField1);
} public void jButton1_actionPerformed(ActionEvent e) {
panel p=new panel();
contentPane.remove(jPanel2);
contentPane.add(p, java.awt.BorderLayout.WEST);
this.show();
}
}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);
}
}
=================================
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; public class TESTFrame
extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel NORTHPanel = new JPanel();
JPanel WESTPanel = new JPanel();
JButton cmdTest = new JButton();
JTextField tempTextField = new JTextField(); public TESTFrame() {
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(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
NORTHPanel.setBorder(BorderFactory.createEtchedBorder());
WESTPanel.setBorder(BorderFactory.createEtchedBorder());
cmdTest.setText("测试");
cmdTest.addActionListener(new Frame1_jButton1_actionAdapter(this));
tempTextField.setText("");
contentPane.add(NORTHPanel, java.awt.BorderLayout.NORTH);
NORTHPanel.add(cmdTest);
contentPane.add(WESTPanel, java.awt.BorderLayout.WEST);
WESTPanel.add(tempTextField);
} public void cmdTest_actionPerformed(ActionEvent e) {
panel p=new panel(); //新建一个panel对象
contentPane.remove(WESTPanel); //移除westpanel
contentPane.add(p, java.awt.BorderLayout.WEST); //加入新建的panel
this.show();
}
} class TESTFrame_cmdTest_actionAdapter
implements ActionListener {
private TESTFrame adaptee;
TESTFrame_cmdTest_actionAdapter(TESTFrame adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.cmdTest_actionPerformed(e);
}
}
panel什么东西
不是JPanel?
在新的panel里加了一个label作标示。main, 在这里调用frame:
---------------------------------------
public class Main {
public static void main(String[] args) {
TESTFrame t = new TESTFrame();
t.setVisible(true);
}
}修改lz的TESTFrame:
-----------------------------------------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class TESTFrame extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel NORTHPanel = new JPanel();
JPanel WESTPanel = new JPanel();
JButton cmdTest = new JButton();
JTextField tempTextField = new JTextField();
public TESTFrame() {
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(borderLayout1);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
NORTHPanel.setBorder(BorderFactory.createEtchedBorder());
WESTPanel.setBorder(BorderFactory.createEtchedBorder());
cmdTest.setText("测试");//空些行, 代码看得清楚些
cmdTest.addActionListener(new TESTFrame_cmdTest_actionAdapter());
contentPane.add(NORTHPanel, java.awt.BorderLayout.NORTH);
NORTHPanel.add(cmdTest);
contentPane.add(WESTPanel, java.awt.BorderLayout.WEST);
tempTextField.setText("eeeeeeee");
WESTPanel.add(tempTextField);
}
class TESTFrame_cmdTest_actionAdapter implements ActionListener {
public void actionPerformed(ActionEvent e) {
JPanel p=new JPanel(); //新建一个panel对象
JLabel label = new JLabel("new west");
p.add(label);
contentPane.remove(WESTPanel); //移除westpanel
contentPane.add(p, java.awt.BorderLayout.WEST); //加入新建的panel
refresh();
}
}
private void refresh(){
this.validate();
}
}