1

我正在玩一些摇摆图形,并试图创建一个基本程序。该程序将有一个选项卡式窗格,其中包含不同数量的选项卡,具体取决于数组的大小。(我的最终目标是让用户更改数组中的项目数量,从而更改选项卡的数量)。

每个选项卡都将具有完全相同的组件、文本区域、表格以及一些按钮和标签。我想做的不是单独编码这些选项卡并一遍又一遍地重写我的代码,我想做的是创建一个类来放入我的所有组件。

然而,我有点难过。这是我创建标签的课程:

public class LocaleTab {

public LocaleTab(){
    JPanel tab = new JPanel();
    JLabel label = new JLabel();
    label.setPreferredSize(new Dimension(300, 300));

    tab.add(label);
}
}

这是我试图用它调用的代码:

    LocaleTab tab1 = new LocaleTab();
    JTabbedPane localesTabPane = new JTabbedPane();

    localesTabPane.add(tab1);

当我尝试编译它时出现错误。我在想我的方法可能是完全错误的。

The method add(Component) in the type JTabbedPane is not applicable 
    for the arguments (LocaleTab)

我担心的一个问题是,当我尝试使用每个选项卡中的表格和文本区域中的数据时(我认为我将使用事件侦听器?我还没有到那个阶段!)我将如何针对各个选项卡组件?

4

2 回答 2

3

改成:

public class LocaleTab extends JPanel {
    public LocaleTab(){
        JLabel label = new JLabel();
        label.setPreferredSize(new Dimension(300, 300));
        add(label);
    }
}
于 2012-05-02T16:29:47.740 回答
0

可能您正在寻找接近此的东西:

public class LocaleTab {

    private JPanel tab;

    public LocaleTab() {
        tab = new JPanel();
        JLabel label = new JLabel();
        label.setPreferredSize(new Dimension(300, 300));

        tab.add(label);
    }

    public JPanel getTabPanel() {
        return tab;
    }
}

并如下图使用LocaleTab

LocaleTab tab1 = new LocaleTab();
JTabbedPane localesTabPane = new JTabbedPane();

localesTabPane.add(tab1.getTabPanel());

另外要了解 JTabbedPane 的工作原理,请查看此处:如何使用选项卡式窗格

于 2012-05-02T17:45:53.387 回答