私はJavaが初めてで、より高度な開発者にいくつか質問があります.
私は Swing ベースの GUI アプリケーションを持っており、その中に複数の がありAbstractActions
ます。の大規模なグループは、にAbstractActions
基づいて新しいタブを作成しますJPanel
。例えば:
// opens "Documents" tab
documentsAction = new AbstractAction(DOCUMENTS) {
@Override
public void actionPerformed(ActionEvent e) {
try {
int index = getTabIndex(DOCUMENTS);
if (index >= 0) {
// Tab exists, just open it.
tabbedPane.setSelectedIndex(index);
} else {
// No tab. Create it and open
newCatalogTab(new DocumentService(), DOCUMENTS);
}
} catch (ServiceException ex) {
printError(ex.getMessage());
}
}
};
documentsItem.setAction(documentsAction);
どこgetTabIndex
にある:
private int getTabIndex(String tabName) {
int result = -1;
for (int i = 0; i < tabbedPane.getTabCount(); i++) {
if (tabName.equals(tabbedPane.getTitleAt(i))) {
result = i;
break;
}
}
return result;
}
そしてnewCatalogTab
次のとおりです。
private void newCatalogTab(ICatalog service, String Name) throws ServiceException {
CatalogPanel panel = new CatalogPanel(service);
tabbedPane.add(Name, panel);
tabbedPane.setSelectedIndex(tabbedPane.getTabCount() - 1);
checkTabs(); // changes activity of buttons like "edit" and "delete"
}
そのため、多くAbstractAction
の人が同様の作業を行っています。
- を拡張するクラスのインスタンスを作成します
AbstractPanel
。 - データ アクセス インターフェイス (
DocumentService
例) をインスタンスに渡します。 - インスタンスで新しいタブを作成します。
データ アクセス インターフェイスが異なる POJO を使用する場合、何らかの方法でこれをテンプレート化できますか? Generic インターフェイスを作成して使用することはできますか? 思考の正しい方向性を教えてもらえますか?
時間を無駄にしていただきありがとうございます。