我遇到了這本書中簡單的示例代碼的問題。它應該在一個窗口(北部和南部的標籤)中一個在另一個之上代表相同的圖像2次。當我運行它時,它顯示this而不是this(我很抱歉沒有切割圖像或調整它們的大小)以下是我的代碼。我在Ubuntu 13.04上運行Eclipse Juno。爲什麼這個簡單的代碼不起作用
package gui;
import java.awt.BorderLayout;
import javax.swing.*;
public class Gui {
public static void main(String[] args) {
JLabel northLabel = new JLabel ("North");
ImageIcon labelIcon = new ImageIcon ("GUItip.gif");
JLabel centerLabel = new JLabel (labelIcon);
JLabel southLabel = new JLabel (labelIcon);
southLabel.setText("South");
JFrame application = new JFrame();
application.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
application.add(northLabel, BorderLayout.NORTH);
application.add(centerLabel, BorderLayout.CENTER);
application.add(southLabel, BorderLayout.SOUTH);
application.setSize(300, 300);
application.setVisible(true);
}
}
您可能不會在正確的位置查找圖像。嘗試使用圖像的絕對路徑。要麼或找出你的用戶目錄是在哪裏,並把圖像放在那裏。 – 2013-05-02 23:58:14
或者如果圖像嵌入到應用程序中,使用'Gui.class.getResource(「GUItip.gif」);'而不是 - 使用ImageIO',它會拋出更有意義的異常... – MadProgrammer 2013-05-03 00:00:59
這不是硬編碼絕對路徑的良好做法。將圖像放置在項目內的某個位置,並將相對路徑提供給根文件夾路徑。 – 2013-05-03 00:01:51