我希望使用工厂方法模式来使 Swing UI 的开发更快、更易于管理。
一般来说,它是一个使用 JInternalFrames 的 MDI 应用程序。我在系统中有很多设置、我称之为类型的类型(例如 userTypes、accountTypes 等)。我有一个我决定使用的固定 UI。问题是,系统中有超过 50 种此类类型,因此工厂方法模式似乎是最易于管理的解决方案。下面是一个工作应用程序的两个屏幕截图。
我正在查看 [this example][3] 但由于我无法估计将所有信息存储在记录中所需的选项卡数量,因此我需要能够添加多个选项卡和控件(标签、文本框、表格、组合框等)在这些选项卡中。
根据示例,是否可以在抽象类中创建 JTabbedPane 并在子类中对其进行修改和添加?我尝试了以下方法,有点迷失:
public AbstractTypeInternalFrame(String title) {
setBounds(100, 100, 808, 589);
JToolBar toolBar = new JToolBar();
getContentPane().add(toolBar, BorderLayout.NORTH);
JButton btnAdd = new JButton("Add");
toolBar.add(btnAdd);
JButton btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
toolBar.add(btnSave);
JButton btnDelete = new JButton("Delete");
toolBar.add(btnDelete);
JButton btnCancel = new JButton("Cancel");
btnCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
toolBar.add(btnCancel);
JTabbedPane recordTabs = new JTabbedPane(makeRecordTabPane());
getContentPane().add(recordTabs, BorderLayout.NORTH);
JSeparator recordSearchSeparator = new JSeparator();
getContentPane().add(recordSearchSeparator, BorderLayout.NORTH);
}
protected abstract int makeRecordTabPane();
使用 makeRecordTabPane() 方法需要返回一个 int。
如您所见,我有点迷茫,只需要一些指导来了解如何继续使用这种模式。如果有任何建议甚至示例/链接,将不胜感激。
我意识到我的问题很模糊,所以如果我需要任何澄清,请随时提问。
此致。