我已经对此进行了大量搜索..我有一个问题可以通过以下代码进行总结:
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog ui = new RandomDialog();
}
});
item
只是一个菜单项,RandomDialog
是一个扩展JDialog
的类。
每次我在RandomDialog
课程中进行更改时,我都必须将ui
声明从JDialog
更新为RandomDialog
,然后反之亦然。
有什么问题?
[编辑]
我有JFrame
,JMenuBar
和JMenuItem
。其中一个项目有一个像上面那样的听众。我想在按下该项目时打开JDialog
。每次我对表示JDialog
(一个扩展JDialog
的单独类)的类中的代码进行更改时,会发生什么变化,除非我更改{{1 }}。所以想象我有这样的声明:
JDialog
如果我做出改变,我必须这样说:
JDialog ui = new RandomDialog();
接下来我必须再次提出:
RandomDialog ui = new RandomDialog();
依此类推......
答案 0 :(得分:0)
将JDialog
更改为RandomDialog
然后再更改为JDialog
,您不会更改代码,但您正在更改文件的时间戳。这会导致构建系统从Java文件重建.class
文件,构建.jar
文件,然后可能将其部署到服务器,具体取决于您的设置方式。
问题的原因是你的构建系统没有意识到这个文件(JMenuItem
)依赖于另一个文件(RandomDialog
)所以对{{1}的更改不会导致重建。
要解决此问题,您需要查看项目结构。您尚未描述如何构建代码。通常,如果您使用IDE,它将允许您管理项目依赖项。
答案 1 :(得分:0)
在NetBeans Clean& Build通常会进行必要的重建。
请务必启用保存时编译