[英]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.