【发布时间】:2014-06-29 00:51:31
【问题描述】:
例如,我有一个类 ImageViewer,它在面板中显示图片。然后我有另一个类 ImageChooser,它可以让您从目录中选择图像,然后在文本字段中显示文件路径字符串。在那个类中,我有一个私有内部类,当单击名为 displayButton 的按钮时,它会从 ImageViewer 调用一个方法来显示图像。
private class displayButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
displayImage(imageTextField.getText());
}
}
我的问题是方法displayImage在ImageViewer类中,不能被ImageChooser类访问。
public void displayImage(String imageFile) {
ImageIcon picture = new ImageIcon(imageFile);
imageLabel.setIcon(picture);
}
这两个类都扩展了 JPanel(我有一个主类,它使用 BorderLayout 管理器使用框架中的每个面板),因此我无法通过继承访问 ImageViewer 中的方法。
我知道我可以组合这两个类或使用不同的布局管理器,但我想知道它们是否是另一种方法,以防我再次遇到类似的事情。
【问题讨论】:
-
我的方法是在
ImageChooser中引用ImageViewer。
标签: java swing inheritance