2011-12-21 64 views
1

我不能讓圖標出現在我的按鈕。我從一本書中複製了這段代碼,因爲我是一個試圖掌握Java編程的初學者。不幸的是,我不能沒有得到這個工作進展,其他練習基於GUI圖像。我相信我已經遵循了確切的步驟,希望有人能夠幫助!簡單的ImageIcon問題

下面是簡單的代碼:

package Chapter13; 

import javax.swing.*; 

/** @author Chris */ 
public class TestButtonIcons extends JFrame 
{ 
    public static void main(String[] args) 
    { 
     JFrame frame = new TestButtonIcons(); 
     frame.setTitle("ButtonIcons"); 
     frame.setSize(200, 100); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 

    public TestButtonIcons() 
    { 
     ImageIcon usIcon = new ImageIcon("image/usIcon.gif"); 
     ImageIcon caIcon = new ImageIcon("image/caIcon.gif"); 
     ImageIcon ukIcon = new ImageIcon("image/ukIcon.gif"); 

     JButton jbt = new JButton("Click it", usIcon); 
     jbt.setPressedIcon(caIcon); 
     jbt.setRolloverIcon(ukIcon); 

     getContentPane().add(jbt); 
    } 
} 

文件數字體系:

正如你可以看到我已經複製的「圖像」文件兩次試圖嘗試和調試這一點。儘管照片沒有全部顯示,所有圖像都位於「圖像」文件夾中。

File Hierachy

+2

如何啓動應用程序?從哪個文件夾?由於您使用的是相對路徑,我懷疑基路徑是錯誤的。 – Thomas 2011-12-21 14:10:07

+0

從「第13章」中,我可以右鍵單擊文件「TestButtonIcons」並選擇運行。 – cworner1 2011-12-21 14:12:30

+0

[將JPG加載到Swing應用程序中]可能的副本(http://stackoverflow.com/questions/8462029/loading-jpgs-into-swing-apps) – trashgod 2011-12-21 14:17:11

回答

2

您需要將源代碼包之外創建的圖像文件夾,當你從NetBeans運行,而當您運行直接執行罐子,那麼你需要把在同一文件夾中的可執行的JAR文件和圖像文件夾或相同的地方

+0

也許這可能會起作用,但這與我在書中告訴我的不符。這不是一個大問題。不過,我對解決方案感興趣,而不是「解決方案」。托馬斯評論說,通過更改「BookExercises」屬性並將TestButtonIcons更改爲現在可用的主類,結果發生了變化。 – cworner1 2011-12-21 14:21:37

+0

感謝您的幫助!欣賞它。 – cworner1 2011-12-21 14:21:52

1

這似乎是BookExcercises有點問題;這不是一個正常的項目。 正常的NetBeans項目(您可以在「項目」選項卡右側的「文件」選項卡中看到所有項目):源代碼包下顯示的目錄爲src。建立一個項目填充目標目錄。現在構建將把.class文件放在那裏,並複製你的圖像。 運行(項目)將以類路徑運行目標目錄。 運行文件但是可能找不到目標目錄中的圖像。

解決方案取決於BookExcercises項目。您可以爲每項練習創建一個新項目。依靠。

1

如果您使用的命令提示運行您的程序,只需將此圖像文件夾粘貼到chapter13包文件夾(其中包含您的TestButtonIcons.class)。

或者如果你使用一些IDE,檢查你編譯的東西去的地方。再次將您的圖像文件夾粘貼到chapter13包文件夾(其中包含您的TestButtonIcons.class)。這將會滿足你期望的程序運行的需要。

Regards