【发布时间】:2015-11-04 18:32:25
【问题描述】:
这是用于 Java Swing JToolBar:
我有自己的工具栏类,它扩展了 JToolBar,它上面有带有 ActionListener 的按钮。代码:
class ToolBar extends JToolBar {
JButton save, reset;
ToolBar() {
setFloatable(false);
setRollover(true);
makeButtons();
}
makeButtons() {
save = new JButton();
// Icon and tooltip code
save.addActionListener(new ButtonListener());
add(save);
reset = new JButton();
// Icon and tooltip code
reset.addActionListener(new ButtonListener());
add(reset);
protected class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
}
}
然后我制作了这个的其他几个子类,因为我需要多个框架的多个工具栏,每个工具栏都有不同的“保存”或“重置”源/目标。为简单起见,我只给出一个:
class FullToolBar extends ToolBar {
protected class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (event.getSource() == save) FullInput.save();
else if (event.getSource() == reset) FullInput.reset();
}
}
}
FullInput 是我的其中一个 JFrame 的名称,工具栏将继续显示。它有一个静态的保存和重置方法,但是由于某种原因,当我将 FullToolBar 添加到我的 FullInput 时,按钮不起作用。
我是否误解了嵌套类可以被继承和覆盖?有什么想法/cmets甚至建议以完全不同的方式来做我在这里想要完成的事情吗?基本上,需要一种方法来使用相同工具栏的不同框架/类上的保存和重置按钮。
【问题讨论】:
标签: java swing inheritance subclass nested-class