当前位置: 首页 > 知识库问答 >
问题:

JButton从jpanel中删除所有其他jcomponent

姬魁
2023-03-14

我有这个actionlistener添加到一个按钮:

//The ActionListener for the home button
ActionListener homeActionListener = new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        removeAll();
        Home home = new Home();
        add(home);
    }
};

这是jPanel和jbutton的代码:

//creating the jpanel which will hold the buttons
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(null);
buttonPanel.setBounds(0,0,600,100);
buttonPanel.setBackground(Color.GRAY);
add(buttonPanel);

//creating the jbutton to send the user to the home page
JButton home = new JButton("Home");
home.setBounds(25,25,100,50);
buttonPanel.add(home);

我怎样才能让它删除jframe的所有组件,除了名为buttonPanel的jpanel?

共有3个答案

白浩气
2023-03-14
getContentPane().removeAll();

removeAll()移除框架上的所有组件。

纪佐
2023-03-14
  1. 停止使用null布局和setBound。虽然对于新手来说,使用null布局似乎是创建复杂图形用户界面的更好方法,但这是一个谬误,你创建的摇摆图形用户界面越多,你就越学会尊重和使用布局管理器,并看到这些生物在创建灵活、美观以及必要时复杂图形用户界面方面帮助很大。然后你可以让他们在设置可见之前调用pack()来适当调整自己的大小。
  2. 使用CardLayout交换JPanels。这里有教程链接。

......以及MadP要说什么!

崔涵亮
2023-03-14

一种可能的解决方案是创建一个包含所有其他组件的中央面板,并简单地在此容器上使用removeAll

小心在JFrame调用RemveAll,它将删除根窗格,这不是您真正想要的。

还有鳗鱼说了什么

 类似资料:
  • 问题内容: 我正在尝试做一个小型应用程序,该应用程序读取与组织中不同用户的共享文件夹,获取文件,然后将其删除。 问题是我无法删除其他用户的文件,因为我只能删除拥有所有权的文件(接收到该文件的403权限不足) 我发现的另一个解决方案是更改文件的所有者,但出现相同的错误。 我使用带有组织的SuperAdmin帐户和服务帐户的本机应用程序oAuth对其进行了测试,但它们均无效。 我的一段代码试图更改所有

  • 当我创建时,我需要从另一个活动中删除一个片段,而不是创建它的活动: 然后我可以从片段中访问另一个活动,假设片段中有一个按钮可以打开另一个活动,现在,停留在该活动中我想删除启动该活动的片段,我得到该片段的参考号通过意图。所以我尝试: 但它给了我一个nullPointerException, 03-07 22:42:33.270 30993-30993/河马。rggmiranda。hiposleep

  • 问题内容: 我有一个数组: 我想从中删除所有零,以便返回(保持相同的顺序): 有什么比以下方法更简单的方法来删除所有零? 我无法在Arrays类中找到任何方法,并且Google / SO搜索没有给我任何好的答案。 问题答案: 这是在少数情况下,用代码显示比用普通英语解释更容易的情况之一:

  • 问题内容: 当我需要时会出现一个新的JPanel(超过了时间限制或用户按下了“提交”按钮)。但是几秒钟后,旧的JPanel的某些元素就会与新的JPanel的组件一起出现。我不明白为什么会这样。 我以为是因为我必须对其他线程更新窗口。但是第一个线程只需将旧面板添加一次(因此,应该完成)。在第二个线程中,我有一个中断的循环(因此,它也应该完成)。 这是我的代码: 问题答案: 从容器(框架)中删除组件(

  • 问题内容: 我试图找到一些可以使用qt布局并从中删除所有内容的东西。只是想像一下窗口是什么样子-我有: 所以我需要可以递归调用的东西,以清除并删除父母的所有东西。我尝试了这里提到的事情(在pyqt中清除布局中的所有小部件),但是它们都不起作用(无论如何都没有标记正确答案)。我的代码如下所示: 但这给出了一个错误: =>编辑这种方法很有效(但是,除了: 问题答案: 清除布局的最安全方法是使用其tak

  • 问题内容: $(“#topNav” + $(“#breadCrumb2nd”).text().replace(” “, “”)).addClass(“current”); 这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。 我希望删除空白。我已经尝试过,但这只能部分起作用。该只删除第一个空间。 问题答案: 您必须告诉re