一个jframe中原来有个jpanel1,使用remove方法删除后,再使用add方法添加jpanel2,为什么jpanel2显示不出来 100

 我来答
zhaotao_king
2012-04-16 · TA获得超过2455个赞
知道大有可为答主
回答量:863
采纳率:0%
帮助的人:1147万
展开全部
可以 的,我给你写了个例子
2个按钮事件,没做详细判断,你可以试着删除和添加,看看效果!
~有问题再留言吧,good luck!~

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MyFrame extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;
private Container c = null;
private JButton b1 = null, b2 = null;
private JPanel jp1 = null, jp2 = null, jp3 = null;

public MyFrame() {
// TODO Auto-generated constructor stub
c = this.getContentPane();
c.setLayout(new BorderLayout());

b1 = new JButton("删除");
b1.addActionListener(this);
b2 = new JButton("添加");
b2.addActionListener(this);

jp1 = new JPanel();
jp1.add(new JLabel("我是JPanel一号"));

jp2 = new JPanel();
jp2.setLayout(new FlowLayout());
jp2.add(b1);
jp2.add(b2);
c.add(jp1, BorderLayout.CENTER);
c.add(jp2, BorderLayout.SOUTH);

this.setSize(500, 500);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String btn = e.getActionCommand();
if("删除".equals(btn)) {
this.remove(jp1);
//重绘
this.repaint();
}
if("添加".equals(btn)) {
jp3 = new JPanel();
jp3.add(new JLabel("我是JPanel三号!"));
c.add(jp3, BorderLayout.CENTER);
this.setVisible(true);
}
}

public static void main(String[] args) {
new MyFrame();
}

}
更多追问追答
追问
一定要自己手动布局吗?如果是用swing插件自动生成的布局形式,难道就看不到吗?
追答
那个插件我没用过!
好像插件只是拖拽组件,事件好像有些要自己写吧!~
如果你是初学,建议你看下底层!~
flyingFish211
2012-04-16 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
拖动下窗口看看或者添加f.pack();

例子
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class test {

/**
* @param args
*/
public static void main(String[] args) {

JFrame f = new JFrame();
JPanel p = new JPanel();

p.add(new JButton("OK"));
f.add(p);

f.setVisible(true);
f.pack();

f.remove(p);
JPanel p2 = new JPanel();
p2.add(new JButton("Button 2"));

f.add(p2);
f.pack();

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是谁我在哪我要干什么呢
2012-04-16 · TA获得超过560个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:374万
展开全部
能详细说说吗,比如Jframe的布局,jpanel2布局及其里面什么组件没。如果jpanel2中什么都没有显示了你也看不到。
追问
JFrame中的布局是用swing插件生成,我没有手动布局。jpanel中每个我都放了一个标签的,里面写了些字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式