簡體   English   中英

在外部類中創建JTabbed窗格

[英]JTabbed Pane creation in an external class

我正在玩一些搖擺的guis,我正在嘗試創建一個基本程序。 該程序將具有一個標簽窗格,其中包含不同數量的選項卡,具體取決於陣列的大小。 (我的最終目標是讓用戶更改數組中的項目數量,從而更改選項卡的數量)。

每個選項卡將具有完全相同的組件,文本區域,表格以及一些按鈕和標簽。 我想要做的不是單獨編寫這些選項卡,而是重復我的代碼,我想要做的就是創建一個類來放入我的所有組件。

然而,我有點難過。 這是我創建標簽的類:

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)

有人擔心的是,當我嘗試使用每個標簽中的表格和文本區域中的數據時(我認為事件監聽器是我將要使用的東西嗎?我還沒有到達那個階段!)我將如何定位各個標簽組件?

改成:

public class LocaleTab extends JPanel {
    public LocaleTab(){
        JLabel label = new JLabel();
        label.setPreferredSize(new Dimension(300, 300));
        add(label);
    }
}

可能你正在尋找接近這個的東西:

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的工作原理,請查看此處: 如何使用選項卡式窗格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM