我是新手,我已经过去了几天才得到这个想法,但如果有人可以帮助我,我无法解决。
我在一个JFrame
中有两个主要的JPanel
.我在第一个面板中有一些按钮。我有一种方法可以通过调用另一种方法来将面板添加到JTabbedPane
,方法是创建该JPanels
然后将其添加到选项卡中。
想要一种方法,该方法会将任何按钮/组件添加到"已选择"选项卡中,每当我单击第一个面板中的按钮时,我都会想要这种方法。我该怎么做。如果有人愿意帮助我,我可以在这里发布这三个方法的代码。提前谢谢。
第一个代码将新选项卡添加到JTabbedPane
,
private class TabPlus implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JPanel panel = CreateSlice();
String title = "Slice " + String.valueOf(pane.getTabCount());
pane.insertTab(title, null, panel, null, pane.getTabCount() - 1);
}
}
第二个代码用于选择选项卡,
private class TabSelect implements ChangeListener {
@Override
public void stateChanged(ChangeEvent e) {
JTabbedPane source = (JTabbedPane) e.getSource();
if (source.getSelectedComponent() != null) {
int index = source.getSelectedIndex();
System.out.print(index);
}
}
}
这将创建要添加到JTabbedPane
的JPanel
,
public JPanel CreateSlice() {
JPanel Slice = new JPanel();
Slice.setPreferredSize(new Dimension(550, 600));
return Slice;
}
按钮位于另一个面板中,具有自己的操作。
图形用户界面图像
您可以通过以下方式添加带有屁股的面板:
public JPanel CreateSlice() {
JPanel Slice = new JPanel();
Slice.setPreferredSize(new Dimension(550, 600));
JPanel buttonsPanel = new JPanel();
buttonsPanel.add(new JButton("dumpButton"));
buttonsPanel.setVisible(false);
Slice.add(buttonsPanel);
return Slice;
}
每当发生选择时,将按钮面板的可见性设置为 true。
我想,我找到了一种方法,我的索引变量int index = source.getSelectedIndex();
必须是公共变量,然后在另一个选项卡的按钮的操作事件中,将组件添加到这个选定的JTabbedPane
。
就我而言,我介绍并ArrayList
面板(network_slices),每次我向JTabbedPane
添加面板时,它也添加到ArrayList
中。 然后我使用所选 JTabbedPane 的索引从 ArrayList 调用面板。这是代码的一部分。
private class TabSelect implements ChangeListener {
@Override
public void stateChanged(ChangeEvent e) {
JTabbedPane source = (JTabbedPane) e.getSource();
if (source.getSelectedComponent() != null) {
index = source.getSelectedIndex();
System.out.print(index);
}
}
}
private class AddTab implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Slice panel = new Slice();
panel.setPreferredSize(new Dimension(550, 600));
String title = "Slice " + String.valueOf(pane.getTabCount());
pane.insertTab(title, null, panel, null, pane.getTabCount() - 1);
network_slices.add(panel);
}
}
private class AddNetworkFuncitons implements ActionListener {
public void actionPerformed(ActionEvent e) {
String buttonselected = (String) e.getActionCommand();
JButton button = new JButton(buttonselected);
network_slices.get(index).add(button).setVisible(true);
System.out.print(buttonselected);
}
}