如何清空panel中的控件? JFrame a; a.removeAll(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Removes all the components from this containerpanel.removeAll()Adds the specified componentpanel.add JFrame中我有一个MenuBar和Panel我只希望清楚Panel那么我如何获得Frame中的Panel对象的引用? 把panel上面的清除不是一样的效果吗 在JFrame上set了一个MenuBar。选择不同的菜单处理一些不同的事务。在实现过程中,每个菜单对应一个不同的类。现在我希望在选择不同的菜单的时候,能够清楚原来Panel的内容,应该如何实现? 菜单一对应的假如是panel1菜单二对应的假如是panel2那么菜单事件里面if (event.getSource() == 菜单一) jframe.getContentPane().add(panel1);if (event.getSource() == 菜单二) jframe.getContentPane().add(panel2); /** * @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()); }}这是我的一个消息处理类。 要获得你的Panel对象的引用,给你的Panel定义get方法不就完了 public JPanel getP(){ return p;}用的时候就getP().removeAll();这样整个p上的全清除了,就剩一个空的Panel,应该能满足你的要求吧 或者干脆就p.setVisible(false);一样能把p看不见,然后再add(newP); 将每个菜单项都对应一个PANEL,然后分别让他们可见不可见即可! 谢谢以上各位。我不应该把清楚Panel的语句放在构造函数中因为消息处理对象AssetdebtListener只new一个。而消息是要处理多次的。下次当我再触发消息的时候,AssetdebtListener类中的panel就不会被清楚了。现在问题解决了,谢谢大家! 菜鸟学习Java BufferedWriter基础问题 Java怎样处理“起始目录”问题? 求翁恺JAVA视频 locale的小问题!!! 关于到SUN网站下载J2SE时遇到的问题。 Exception in thread "main" java.lang.NoClassDefFoundError: LibTest?why? 求救,布局问题:) 在一个Java开发的系统中如何处理数据权限?来者有分。。。。。。。。。。。。。。。。。 Eclipse提示的到底是什么错误信息? 如何比较两个二进制的流是否一样,在线等。。。 用什么数据库好呢...是一个问题
panel.removeAll()
Adds the specified component
panel.add
我只希望清楚Panel
那么我如何获得Frame中的Panel对象的引用?
选择不同的菜单处理一些不同的事务。
在实现过程中,每个菜单对应一个不同的类。
现在我希望在选择不同的菜单的时候,能够清楚原来Panel的内容,
应该如何实现?
菜单二对应的假如是panel2那么菜单事件里面
if (event.getSource() == 菜单一)
jframe.getContentPane().add(panel1);
if (event.getSource() == 菜单二)
jframe.getContentPane().add(panel2);
* @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());
}
}
这是我的一个消息处理类。
public JPanel getP()
{
return p;
}用的时候就getP().removeAll();这样整个p上的全清除了,就剩一个空的Panel,应该能满足你的要求吧
因为消息处理对象AssetdebtListener只new一个。而消息是要处
理多次的。下次当我再触发消息的时候,AssetdebtListener类中的
panel就不会被清楚了。
现在问题解决了,谢谢大家!