簡體   English   中英

將ImageIcon添加到JTabbedPane

[英]Adding ImageIcon to JTabbedPane

我試圖將圖片添加到JTabbedPane的第一個標簽中,這是我的代碼:

JTabbedPane application = new JTabbedApplication();
JPanel welcomePanel = new JPanel();
JLabel imageLabel = new JLabel(new ImageIcon("track.jpg"));
welcomePanel.add(imageLabel);
application.addTab("WELCOME", welcomePanel);
application.setMnemonicAt(0, KeyEvent.VK_1);

該圖像文件與該代碼所在的類位於相同的位置。但是由於某種原因,我的圖像沒有出現。 我使用了相同的JLabel,並使用了文本而不是圖像,它出現了。 有人可以給我一些有關這個問題的見解嗎?

Java不知道該圖像直接位於正在運行的類文件旁邊。 您必須交出絕對路徑。 這意味着路徑+文件名。

這小段代碼將幫助您告訴Java該映像位於當前工作目錄中。

String file = new File("track.jpg").getAbsolutePath();

添加到您的代碼片段中,它看起來像這樣:

JTabbedPane application = new JTabbedPane();
JPanel welcomePanel = new JPanel();
String file = new File("track.jpg").getAbsolutePath();

JLabel imageLabel = new JLabel(new ImageIcon(file));
welcomePanel.add(imageLabel);
application.addTab("WELCOME", welcomePanel);

圖像文件與該代碼所在的類位於相同的位置

代替JLabel imageLabel = new JLabel(new ImageIcon("track.jpg")); 如果要在當前工作目錄中查找文件,則應使用Class#getResource ,它將返回URL到嵌入式資源。

重要的是要注意,存儲在應用程序上下文中的資源(即嵌入在Jar或源程序包中的資源)不再可以作為“文件”訪問。

相反,您可以嘗試使用類似...

ImageIcon icon = new ImageIcon(ImageIO.read(getClass().getResource("track.jpg"));

加載圖像。 ImageIcon不同,如果無法讀取圖像,則ImageIO.read將引發IOException ,這總是比從ImageIcon獲得的靜音有用。

如果此操作不起作用,則將需要有關應用程序結構的更多上下文

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM