gpt4 book ai didi

java - GridBagLayout 上的 swing 替换组件

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:50 26 4
gpt4 key购买 nike

我花了几个小时寻找答案,尝试了我所知道的所有方法,但没有找到答案。
我正在开发 Eclipse,我的类正在扩展 JFrame,我试图替换我添加到框架中的两个组件(使用 gridbaglayout)。
当我删除第一个时,我无法将第二个添加到第一个所在的位置。
这些组件是带有图像的 JButton。如何在任意位置添加和删除组件? (已经尝试使用 GridBagConstraints 将其添加到我刚刚删除组件的位置)

最佳答案

作为解决方法,您可以向主面板(使用 GridbagLayout)添加带有按钮的继承面板。然后,当您想要替换这些按钮(或任何组件)时,您不会在主面板上替换它们。您可以在继承的面板中替换它们。由于您没有给我们代码,因此一种伪代码如下:

JButton myBtn = new JButton(); //Theinitial button
JPanel mainPanel = new JPanel(new GridBagLayout()); //main panel
JPanel inheritedPanel = new JPanel(new BorderLayout())//borderlayout to fill the entire panel.
inheritedPanel.add(myBtn,BorderLayout.CENTER);
mainPanel.add(inheritedPanel, myConstraints);

JButton replacementBtn = new JButton;
inheritedPanel.remove(myBtn);
inheritedPanel.add(replacementBtn);
inheritedPanel.repaint();
inheritedPanel.revalidate();

关于java - GridBagLayout 上的 swing 替换组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com