我是新手,我已经过了好几天才能得到这个想法,但如果有人能帮助我的话,我无法解决它。
我在一个JPanel
中有两个JFrame
。我在第一个面板中有一些按钮。我有一种方法可以通过调用另一种方法来创建JTabbedPane
,然后将其添加到选项卡,将面板添加到JPanels
。
我想要一个方法,只要我从第一个面板中单击按钮,就会将所有按钮/组件添加到Selected选项卡中。 我怎样才能做到这一点。如果有人想帮助我,我可以在这里发布这三种方法的代码。提前谢谢。
第一个代码将新标签添加到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);
}
}
}
这会创建JPanel
添加到JTabbedPane
,
public JPanel CreateSlice() {
JPanel Slice = new JPanel();
Slice.setPreferredSize(new Dimension(550, 600));
return Slice;
}
按钮位于另一个Panel中,并有自己的动作。
答案 0 :(得分:0)
您可以通过以下方式添加包含butttons的面板:
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;
}
每当选择发生时,将buttonsPanel的可见性设置为true。
答案 1 :(得分:0)
我认为,我找到了一种方法,我的索引变量int index = source.getSelectedIndex();
必须是公共变量,然后在另一个选项卡的按钮的Action事件中,会向所选的JTabbedPane
添加组件。< / p>
在我的情况下,我介绍了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);
}
}