[英]Changes to dependancy Java classes do not take effect until Main .java file is touched
我對此進行了大量搜索。.我有一個可以用以下代碼概括的問題:
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
的獨立類)的類的代碼進行更改時,都會發生變化,除非更改JDialog
的聲明,否則不會顯示更改。 因此,假設我有這樣的聲明:
JDialog ui = new RandomDialog();
如果我進行更改,則必須這樣輸入:
RandomDialog ui = new RandomDialog();
接下來,我必須再次提出:
JDialog ui = new RandomDialog();
依此類推...
通過將JDialog
更改為RandomDialog
,然后再更改為JDialog
您並沒有更改代碼,而是在更改文件的時間戳。 這將導致您的構建系統從Java文件重新構建.class
文件,構建.jar
文件,然后可能將其部署到服務器,具體取決於您的設置方式。
問題的原因是您的構建系統沒有意識到此文件(帶有JMenuItem
)依賴於另一個文件(帶有RandomDialog
),因此對RandomDialog
更改不會導致重新生成。
為了解決這個問題,您將需要查看您的項目結構。 您尚未描述代碼的構建方式。 通常,如果您使用IDE,它將使您能夠管理項目依賴項。
在NetBeans中,Clean&Build通常會進行必要的重新構建。
確保啟用“保存時編譯”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.