如何清空panel中的控件?

Ji秋风 2004-07-30 11:45:32
在JFrame中,add了一个panel对象里面有一些控件。
现在我想把panel中的控件清楚掉,增加一些其他控件
应该如何写代码?
...全文
1347 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
没人做过类似的东西吗?
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
在JFrame上set了一个MenuBar。
选择不同的菜单处理一些不同的事务。
在实现过程中,每个菜单对应一个不同的类。
现在我希望在选择不同的菜单的时候,能够清楚原来Panel的内容,
应该如何实现?
SBNOone 2004-07-30
  • 打赏
  • 举报
回复
把panel上面的清除不是一样的效果吗
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
JFrame中我有一个MenuBar和Panel
我只希望清楚Panel
那么我如何获得Frame中的Panel对象的引用?
Acylas 2004-07-30
  • 打赏
  • 举报
回复
Removes all the components from this container
panel.removeAll()
Adds the specified component
panel.add
maowu 2004-07-30
  • 打赏
  • 举报
回复
JFrame a;
a.removeAll();
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
谢谢以上各位。我不应该把清楚Panel的语句放在构造函数中
因为消息处理对象AssetdebtListener只new一个。而消息是要处
理多次的。下次当我再触发消息的时候,AssetdebtListener类中的
panel就不会被清楚了。
现在问题解决了,谢谢大家!
0909424 2004-07-30
  • 打赏
  • 举报
回复
将每个菜单项都对应一个PANEL,然后分别让他们可见不可见即可!
lixiang823517 2004-07-30
  • 打赏
  • 举报
回复
或者干脆就p.setVisible(false);一样能把p看不见,然后再add(newP);
lixiang823517 2004-07-30
  • 打赏
  • 举报
回复
要获得你的Panel对象的引用,给你的Panel定义get方法不就完了
public JPanel getP()
{
return p;
}

用的时候就getP().removeAll();

这样整个p上的全清除了,就剩一个空的Panel,应该能满足你的要求吧
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
up
Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
/**
* @Create Data: 2004-7-29
* @Author: Chenc
*/

/**
* 修改日志记录
*/
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class AssetdebtListener implements ActionListener {
private JFrame f;
private JPanel p = new JPanel();
private JLabel lbRiqi = new JLabel("日期:");

private JTextField tfRiqi = new JTextField(8);
// 1
private JTextField tfHuobzj1 = new JTextField(14);
private JTextField tfHuobzj2 = new JTextField(14);
private JTextField tfDqjiek1 = new JTextField(14);
private JTextField tfDqjiek2 = new JTextField(14);
private JButton btCommit = new JButton("提交");

public AssetdebtListener() {
System.out.println("AssetdebtListener()");
}

public AssetdebtListener(Component c) {
/* 这边应该如何处理?我想清楚原先的Panel内容*/
f = (JFrame)c;
f.getContentPane().removeAll();
f.getContentPane().repaint();
}

public void actionPerformed(ActionEvent e)
{ // line 1
p.add(new JButton("货币资金"));
p.add(tfHuobzj1);
p.add(tfHuobzj2);
p.add(new JButton("短期借款"));
p.add(tfDqjiek1);
p.add(tfDqjiek2);


p.add(btCommit);
f.getContentPane().add(p);
f.setVisible(true);

// btCommit.addActionListener(new AddCommitListener());
}
}
这是我的一个消息处理类。
Acylas 2004-07-30
  • 打赏
  • 举报
回复
菜单一对应的假如是panel1
菜单二对应的假如是panel2

那么菜单事件里面
if (event.getSource() == 菜单一)
jframe.getContentPane().add(panel1);
if (event.getSource() == 菜单二)
jframe.getContentPane().add(panel2);

Ji秋风 2004-07-30
  • 打赏
  • 举报
回复
求助阿!~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧