[英]Simple Java GUI, cards not appearing
import javax.swing.*;
public class SlideShow {
JFrame slide = new JFrame("Slide Show");
public SlideShow(){
slide.setSize(300,400);
slide.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
slide.setVisible(true);
slide.setLocationRelativeTo(null);
JPanel panel = new JPanel();
JLabel label = new JLabel(new ImageIcon("Images/picture1"));
panel.add(label);
slide.add(panel);
}
public static void main(String[] args){
SlideShow slide = new SlideShow();
}
}
我必須創建一個顯示一些卡的簡單Java GUI。 首先,我只想顯示一張卡進行測試。 由於某種原因,我似乎無法弄清為什么什么也不顯示。
您實際上並沒有使用正確的文件名"Images/picture1"
。 文件格式應為"Images/picture1.png"
如果打算將圖像文件嵌入到程序中,通常也應該從類路徑中讀取圖像文件。 為此,您首先需要將文件放在類路徑中。 使用大多數IDE構建配置,就像將映像放在src
一樣簡單。 所以
ProjectRoot
src
images
picture1.png
然后你會讀它像
new ImageIcon(getClass().getResource("/images/picture1.png"));
更好的方法是使用ImageIO.read()
。 如果文件路徑不正確,它將引發異常,因此您知道將要出錯的地方
Image image = ImageIO.read(getClass().getResource("/images/picture1.png"));
ImageIcon icon = new ImageIcon(image);
您需要將其放入try/catch
塊中
添加組件后,還要執行codeNinja關於setVisible()
內容。 還最好將框架pack()
而不是setSize()
在將所有必需的組件添加到框架后,需要將其設置為可見。 移動slide.setVisible(true);
像下面這樣構造到底部:
...
slide.add(panel);
slide.setVisible(true);
或者,您可以添加slide.revalidate();
在構造函數的底部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.