前段时间我用Java写了一个小图像查看器/处理程序,一个迷你Photoshop,如果你愿意的话。
我希望有一个下拉菜单,我可以在其中选择我打开的哪一张图像将是“在桌子上”,即。显示和应用的方法。我希望图像的名称是菜单中显示的 JMenuItem 的名称。我还希望在添加新图像时出现一个新按钮。
我想了一段时间,最后产生了这个解决方案,一个新的类,在添加图像时处理新按钮的创建。代码如下:
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class ImageList{
private ArrayList<JMenuItem> list;
private ImageHandler main;
private ImageLevel img;
public ImageList() {}
public void setHandler(ImageHandler hand) {
main = hand;
img = main.getImg1();
}
public void add(Buffer addi) {
final String added = addi.getName();
JMenuItem uusi = new JMenuItem(added);
main.getMenu5().add(uusi);
uusi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
img.setBuffer(added);
main.getScr().updateUI();
}
});
}
}
这可以正常工作。对于这个网站,我将原来的芬兰名字翻译成英文,想知道为什么我最初用芬兰语写它们……我不擅长命名。
方法 add 应该在程序运行时被多次调用。
我真正无法理解的是接口ActionListener的内部类实现,即它的编译和它是如何工作的。
如果我的界面上有两个按钮,我希望它们做不同的事情,我需要两个内部类,每个类一个,每个都有自己的接口 ActionListener 的内部实现。但是在我的代码中,有一个类似乎可以完成许多工作,一个为它编译的 .class 文件,但最终结果就像有很多一样。
有人可以就这个问题教育我吗?这里的代码是一类,新按钮是它的实例吗?他们是新课程吗?每个新按钮都应该有一个新的 .class 文件吗?ETC...