我花了几个小时寻找答案,尝试了我所知道的每种方法,却没有找到答案。
我正在处理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();

09-26 03:13