2016-04-04 63 views
0

因此,我有這段代碼,並安靜了一會兒,我想知道代碼中的問題是什麼,它不顯示..然後我發現它顯示在JGrasp非常好,所以它只是一個intellij問題。在intellij中使用ImageIcon

爲什麼它在inintellij不起作用,當圖像甚至不是在一個子文件夾中,但只是噴出文件夾中的任何地方?

編輯:通過我知道它可能是由於沒有的IntelliJ使用它作爲資源或東西,但它的方式在字面上的相同點與源文件,所以我不明白這一點:/

注意:在圖片中,Icon是如此Intellij可以使用它作爲資源。其他的東西是它以前看起來像什麼

在intellij中實現這個的方法是什麼,因爲我看到的所有其他答案都是使用直接路徑或其他東西的人,所以我不確定它將如何工作的getImage()

注意這是一個小程序應用,有一個顯示行的地方在我的代碼

image1 = new ImageIcon(flag1); 
l1 = new JLabel(image1); 
flag1 = getImage(getCodeBase(),coun.countryLst[0].getcountryFlag()); 

而且繼承人的文件夾東西的圖片在

保存

the folder

回答

0

getCodeBase()會給你包含類文件的目錄,而不是源文件。在jGRASP中,除非您創建具有獨立源代碼和類別目錄的項目,否則這些將是相同的。在其他IDE中,通常情況並非如此。他們的默認項目配置將具有獨立的源和目錄目錄。雖然IntelliJ似乎將它們放在同一個目錄中,因爲源和類的修改時間是相同的,所以在這種情況下顯然不是問題。最有可能的是在啓動小應用程序之前,將類文件複製到其他地方。你可以顯示getCodeBase()的值來找出它的位置。我對IntelliJ不太熟悉,但很可能需要以某種方式將圖像文件包含在項目中。