我试图在下面的代码的帮助下在一个swing窗口JFrame容器上添加和删除面板。 JPanel被添加,如果它添加在构造函数中,但它不会被添加运行时。在jframe运行时添加删除面板
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class test extends JFrame implements ActionListener {
test() {
Container cp = this.getContentPane();
JButton b1 = new JButton("add");
JButton b2 = new JButton("remove");
cp.add(b1);
cp.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("add")) {
panel1 frm = new panel1();
cp.add(frm);
}
if (ae.getActionCommand().equals("remove")) {
remove(frm);
}
}
public static void main(String args[]) {
test t1 = new test();
t1.show(true);
}
}
class panel1 extends JPanel {
panel1() {
JButton b1 = new JButton("ok");
add(b1);
}
}
你需要重新绘制和或验证哟用'repaint()'方法整个框架,这应该在添加或删除面板后完成 – SomeJavaGuy
你的意思是“它没有被添加运行时”是什么意思? –