簡體   English   中英

如何在JFrame中更改java圖標

[英]How to change java icon in a JFrame

好的,所以我一直在研究這個安靜。 我對java很新,但認為這個很容易。 我已經嘗試了幾乎所有已經在這個網站上回答的方式,但仍然沒有運氣,通常當我看到這里時,我能夠找到適合我所尋找的答案。 有誰知道如何更改JFrame頂角的Java圖標。 我非常肯定它不是我的文件路徑,因為我的所有圖像都在同一個文件夾中並且它們都工作,這是我唯一無法工作的。

這是我的程序主菜單的代碼的第一部分,一切正常,除非我嘗試添加圖標圖像。 我在下面輸入的代碼中沒有任何內容用於JFrame IconImage,我將其刪除,因為它不起作用。 因此,如果有人知道如何使用這個代碼,我將非常感謝,非常感謝您提前!

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}

我有一個答案給你。 首先,確保圖像位於文件夾中,而不是包中。 接下來,插入以下代碼行:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

此代碼從類路徑獲取圖像,並將其作為圖像圖標返回,然后設置它。 這應該將圖像圖標添加到應用程序。 如果沒有,請告訴我。

編輯:在你告訴我那不起作用后,我決定再對它進行一次破解......首先,將你的圖像放入一個完全獨立的文件夾中。 我通常稱之為/ res。 接下來,將圖像放在那里。 現在,為了裝載我采取了完全不同的路線。 我決定使用ImageIO而不是默認加載。 要加載圖像,請使用以下代碼:

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIO可以更好地加載圖像。 如果這仍然不起作用,那么請告訴我。

如果要將其導出為JAR,則將與您在程序中使用的名稱相同的文件夾放在與JAR相同的目錄中。

例如,在NetBeans項目中,在src文件夾中創建資源文件夾。

把你的圖像(jpg,...)放在那里。

無論您使用ImageIO還是Toolkit (包括getResource),都必須在圖像文件的路徑中包含一個前導/:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

如果此代碼位於JFrame類中,則圖像將作為標題欄中的圖標添加到框架中。

這對我來說非常好。 只需在創建JFrame后添加即可。

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
  1. 首先將圖像圖標(fav.png)粘貼到同一個包中,
  2. JFrame的 構造函數中編寫以下代碼:

setIconImage(Toolkit.getDefaultToolkit()的getImage(的getClass()的getResource( “fav.png”)));

注意: - fav.png是圖標的名稱

this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
          // sets the Global icon for the system

嘗試此代碼后放置此代碼:

public void displayGUI()
{

暫無
暫無

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

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