创建一个方法以在选定的 JTabbedPane 中添加组件



我是新手,我已经过去了几天才得到这个想法,但如果有人可以帮助我,我无法解决。

我在一个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);
            }
        }
    }

这将创建要添加到JTabbedPaneJPanel

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);
        }
    }

最新更新