GridBagLayout 上的摆动替换组件
swing-replacing components on GridBagLayout
我搜索了几个小时的答案,尝试了我知道的所有方法,但没有找到答案。
我正在使用 Eclipse,我的 class 正在扩展 JFrame,我正在尝试替换我添加到框架中的两个组件(使用 gridbaglayout)。
当我删除第一个时,我无法将第二个添加到第一个所在的位置。
这些组件 JButton
带有图像。
我如何在需要的地方添加和删除组件? (已经尝试使用 GridBagConstraints 将其添加到我刚刚从中删除组件的地方)
The components are JButton with images.
使用setIcon(...)
方法替换图片即可。
作为一种解决方法,您可以向主面板(使用 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();
我搜索了几个小时的答案,尝试了我知道的所有方法,但没有找到答案。
我正在使用 Eclipse,我的 class 正在扩展 JFrame,我正在尝试替换我添加到框架中的两个组件(使用 gridbaglayout)。
当我删除第一个时,我无法将第二个添加到第一个所在的位置。
这些组件 JButton
带有图像。
我如何在需要的地方添加和删除组件? (已经尝试使用 GridBagConstraints 将其添加到我刚刚从中删除组件的地方)
The components are JButton with images.
使用setIcon(...)
方法替换图片即可。
作为一种解决方法,您可以向主面板(使用 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();