簡體   English   中英

我無法將ImageIcon添加到JPanel

[英]I can't add an ImageIcon to a a JPanel

在您說什么之前,我打算使用一個空布局管理器。 我知道這不是最好的選擇。

這是我的代碼。 對不起,效率低下,我只是Java的初學者,不知道該怎么做。

package AEngine;
import java.awt.*;

import javax.swing.*;

import AEngine.Sprites.*;
import AEngine.Maps.Crossroads;
@SuppressWarnings("unused")
public class WindowManager {
public static ImageIcon x1y1 = new ImageIcon("");
public static ImageIcon x2y1 = new ImageIcon("");
public static ImageIcon x3y1 = new ImageIcon("");
public static ImageIcon x4y1 = new ImageIcon("");
public static ImageIcon x5y1 = new ImageIcon("");
public static ImageIcon x6y1 = new ImageIcon("");
public static ImageIcon x7y1 = new ImageIcon("");
public static ImageIcon x8y1 = new ImageIcon("");
public static ImageIcon x9y1 = new ImageIcon("");
public static ImageIcon x10y1 = new ImageIcon("");
public static ImageIcon x11y1 = new ImageIcon("");
public static ImageIcon x12y1 = new ImageIcon("");
public static ImageIcon x1y2 = new ImageIcon("");
public static ImageIcon x2y2 = new ImageIcon("");
public static ImageIcon x3y2 = new ImageIcon("");
public static ImageIcon x4y2 = new ImageIcon("");
public static ImageIcon x5y2 = new ImageIcon("");
public static ImageIcon x6y2 = new ImageIcon("");
public static ImageIcon x7y2 = new ImageIcon("");
public static ImageIcon x8y2 = new ImageIcon("");
public static ImageIcon x9y2 = new ImageIcon("");
public static ImageIcon x10y2 = new ImageIcon("");
public static ImageIcon x11y2 = new ImageIcon("");
public static ImageIcon x12y2 = new ImageIcon("");
public static ImageIcon x1y3 = new ImageIcon("");
public static ImageIcon x2y3 = new ImageIcon("");
public static ImageIcon x3y3 = new ImageIcon("");
public static ImageIcon x4y3 = new ImageIcon("");
public static ImageIcon x5y3 = new ImageIcon("");
public static ImageIcon x6y3 = new ImageIcon("");
public static ImageIcon x7y3 = new ImageIcon("");
public static ImageIcon x8y3 = new ImageIcon("");
public static ImageIcon x9y3 = new ImageIcon("");
public static ImageIcon x10y3 = new ImageIcon("");
public static ImageIcon x11y3 = new ImageIcon("");
public static ImageIcon x12y3 = new ImageIcon("");
public static ImageIcon x1y4 = new ImageIcon("");
public static ImageIcon x2y4 = new ImageIcon("");
public static ImageIcon x3y4 = new ImageIcon("");
public static ImageIcon x4y4 = new ImageIcon("");
public static ImageIcon x5y4 = new ImageIcon("");
public static ImageIcon x6y4 = new ImageIcon("");
public static ImageIcon x7y4 = new ImageIcon("");
public static ImageIcon x8y4 = new ImageIcon("");
public static ImageIcon x9y4 = new ImageIcon("");
public static ImageIcon x10y4 = new ImageIcon("");
public static ImageIcon x11y4 = new ImageIcon("");
public static ImageIcon x12y4 = new ImageIcon("");
public static ImageIcon x1y5 = new ImageIcon("");
public static ImageIcon x2y5 = new ImageIcon("");
public static ImageIcon x3y5 = new ImageIcon("");
public static ImageIcon x4y5 = new ImageIcon("");
public static ImageIcon x5y5 = new ImageIcon("");
public static ImageIcon x6y5 = new ImageIcon("");
public static ImageIcon x7y5 = new ImageIcon("");
public static ImageIcon x8y5 = new ImageIcon("");
public static ImageIcon x9y5 = new ImageIcon("");
public static ImageIcon x10y5 = new ImageIcon("");
public static ImageIcon x11y5 = new ImageIcon("");
public static ImageIcon x12y5 = new ImageIcon("");
public static ImageIcon x1y6 = new ImageIcon("");
public static ImageIcon x2y6 = new ImageIcon("");
public static ImageIcon x3y6 = new ImageIcon("");
public static ImageIcon x4y6 = new ImageIcon("");
public static ImageIcon x5y6 = new ImageIcon("");
public static ImageIcon x6y6 = new ImageIcon("");
public static ImageIcon x7y6 = new ImageIcon("");
public static ImageIcon x8y6 = new ImageIcon("");
public static ImageIcon x9y6 = new ImageIcon("");
public static ImageIcon x10y6 = new ImageIcon("");
public static ImageIcon x11y6 = new ImageIcon("");
public static ImageIcon x12y6 = new ImageIcon("");
public static ImageIcon x1y7 = new ImageIcon("");
public static ImageIcon x2y7 = new ImageIcon("");
public static ImageIcon x3y7 = new ImageIcon("");
public static ImageIcon x4y7 = new ImageIcon("");
public static ImageIcon x5y7 = new ImageIcon("");
public static ImageIcon x6y7 = new ImageIcon("");
public static ImageIcon x7y7 = new ImageIcon("");
public static ImageIcon x8y7 = new ImageIcon("");
public static ImageIcon x9y7 = new ImageIcon("");
public static ImageIcon x10y7 = new ImageIcon("");
public static ImageIcon x11y7 = new ImageIcon("");
public static ImageIcon x12y7 = new ImageIcon("");
public static ImageIcon x1y8 = new ImageIcon("");
public static ImageIcon x2y8 = new ImageIcon("");
public static ImageIcon x3y8 = new ImageIcon("");
public static ImageIcon x4y8 = new ImageIcon("");
public static ImageIcon x5y8 = new ImageIcon("");
public static ImageIcon x6y8 = new ImageIcon("");
public static ImageIcon x7y8 = new ImageIcon("");
public static ImageIcon x8y8 = new ImageIcon("");
public static ImageIcon x9y8 = new ImageIcon("");
public static ImageIcon x10y8 = new ImageIcon("");
public static ImageIcon x11y8 = new ImageIcon("");
public static ImageIcon x12y8 = new ImageIcon("");
public static ImageIcon x1y9= new ImageIcon("");
public static ImageIcon x2y9 = new ImageIcon("");
public static ImageIcon x3y9 = new ImageIcon("");
public static ImageIcon x4y9 = new ImageIcon("");
public static ImageIcon x5y9 = new ImageIcon("");
public static ImageIcon x6y9 = new ImageIcon("");
public static ImageIcon x7y9 = new ImageIcon("");
public static ImageIcon x8y9 = new ImageIcon("");
public static ImageIcon x9y9 = new ImageIcon("");
public static ImageIcon x10y9 = new ImageIcon("");
public static ImageIcon x11y9 = new ImageIcon("");
public static ImageIcon x12y9 = new ImageIcon("");
public static ImageIcon x1y10 = new ImageIcon("");
public static ImageIcon x2y10 = new ImageIcon("");
public static ImageIcon x3y10 = new ImageIcon("");
public static ImageIcon x4y10 = new ImageIcon("");
public static ImageIcon x5y10 = new ImageIcon("");
public static ImageIcon x6y10 = new ImageIcon("");
public static ImageIcon x7y10 = new ImageIcon("");
public static ImageIcon x8y10 = new ImageIcon("");
public static ImageIcon x9y10 = new ImageIcon("");
public static ImageIcon x10y10 = new ImageIcon("");
public static ImageIcon x11y10 = new ImageIcon("");
public static ImageIcon x12y10 = new ImageIcon("");
public static ImageIcon x1y11 = new ImageIcon("");
public static ImageIcon x2y11 = new ImageIcon("");
public static ImageIcon x3y11 = new ImageIcon("");
public static ImageIcon x4y11 = new ImageIcon("");
public static ImageIcon x5y11 = new ImageIcon("");
public static ImageIcon x6y11 = new ImageIcon("");
public static ImageIcon x7y11 = new ImageIcon("");
public static ImageIcon x8y11 = new ImageIcon("");
public static ImageIcon x9y11 = new ImageIcon("");
public static ImageIcon x10y11 = new ImageIcon("");
public static ImageIcon x11y11 = new ImageIcon("");
public static ImageIcon x12y11 = new ImageIcon("");
public static ImageIcon x1y12 = new ImageIcon("");
public static ImageIcon x2y12 = new ImageIcon("");
public static ImageIcon x3y12 = new ImageIcon("");
public static ImageIcon x4y12 = new ImageIcon("");
public static ImageIcon x5y12 = new ImageIcon("");
public static ImageIcon x6y12 = new ImageIcon("");
public static ImageIcon x7y12 = new ImageIcon("");
public static ImageIcon x8y12 = new ImageIcon("");
public static ImageIcon x9y12 = new ImageIcon("");
public static ImageIcon x10y12 = new ImageIcon("");
public static ImageIcon x11y12 = new ImageIcon("");
public static ImageIcon x12y12 = new ImageIcon("");
public static JFrame MFrame = new JFrame();
@SuppressWarnings("static-access")
public static void main(String[] args){
MFrame.setLayout(null);
MFrame.setSize(576, 576);
JPanel MPanel = new JPanel();
MFrame.setContentPane(MPanel);
AEngine.Maps.Crossroads Map = new AEngine.Maps.Crossroads();
AEngine.Sprites.Sprites SManager = new AEngine.Sprites.Sprites();
int[][] TileData = Map.TileData();
x1y1 = SManager.GetSprite(TileData[1][1]);
x2y1 = SManager.GetSprite(TileData[2][1]);
x3y1 = SManager.GetSprite(TileData[3][1]);
x4y1 = SManager.GetSprite(TileData[4][1]);
x5y1 = SManager.GetSprite(TileData[5][1]);
x6y1 = SManager.GetSprite(TileData[6][1]);
x7y1 = SManager.GetSprite(TileData[7][1]);
x8y1 = SManager.GetSprite(TileData[8][1]);
x9y1 = SManager.GetSprite(TileData[9][1]);
x10y1 = SManager.GetSprite(TileData[10][1]);
x11y1 = SManager.GetSprite(TileData[11][1]);
x12y1 = SManager.GetSprite(TileData[12][1]);
x1y2 = SManager.GetSprite(TileData[1][2]);
x2y2 = SManager.GetSprite(TileData[2][2]);
x3y2 = SManager.GetSprite(TileData[3][2]);
x4y2 = SManager.GetSprite(TileData[4][2]);
x5y2 = SManager.GetSprite(TileData[5][2]);
x6y2 = SManager.GetSprite(TileData[6][2]);
x7y2 = SManager.GetSprite(TileData[7][2]);
x8y2 = SManager.GetSprite(TileData[8][2]);
x9y2 = SManager.GetSprite(TileData[9][2]);
x10y2 = SManager.GetSprite(TileData[10][2]);
x11y2 = SManager.GetSprite(TileData[11][2]);
x12y2 = SManager.GetSprite(TileData[12][2]);
x1y3 = SManager.GetSprite(TileData[1][3]);
x2y3 = SManager.GetSprite(TileData[2][3]);
x3y3 = SManager.GetSprite(TileData[3][3]);
x4y3 = SManager.GetSprite(TileData[4][3]);
x5y3 = SManager.GetSprite(TileData[5][3]);
x6y3 = SManager.GetSprite(TileData[6][3]);
x7y3 = SManager.GetSprite(TileData[7][3]);
x8y3 = SManager.GetSprite(TileData[8][3]);
x9y3 = SManager.GetSprite(TileData[9][3]);
x10y3 = SManager.GetSprite(TileData[10][3]);
x11y3 = SManager.GetSprite(TileData[11][3]);
x12y3 = SManager.GetSprite(TileData[12][3]);
x1y4 = SManager.GetSprite(TileData[1][4]);
x2y4 = SManager.GetSprite(TileData[2][4]);
x3y4 = SManager.GetSprite(TileData[3][4]);
x4y4 = SManager.GetSprite(TileData[4][4]);
x5y4 = SManager.GetSprite(TileData[5][4]);
x6y4 = SManager.GetSprite(TileData[6][4]);
x7y4 = SManager.GetSprite(TileData[7][4]);
x8y4 = SManager.GetSprite(TileData[8][4]);
x9y4 = SManager.GetSprite(TileData[9][4]);
x10y4 = SManager.GetSprite(TileData[10][4]);
x11y4 = SManager.GetSprite(TileData[11][4]);
x12y4 = SManager.GetSprite(TileData[12][4]);
x1y5 = SManager.GetSprite(TileData[1][5]);
x2y5 = SManager.GetSprite(TileData[2][5]);
x3y5 = SManager.GetSprite(TileData[3][5]);
x4y5 = SManager.GetSprite(TileData[4][5]);
x5y5 = SManager.GetSprite(TileData[5][5]);
x6y5 = SManager.GetSprite(TileData[6][5]);
x7y5 = SManager.GetSprite(TileData[7][5]);
x8y5 = SManager.GetSprite(TileData[8][5]);
x9y5 = SManager.GetSprite(TileData[9][5]);
x10y5 = SManager.GetSprite(TileData[10][5]);
x11y5 = SManager.GetSprite(TileData[11][5]);
x12y5 = SManager.GetSprite(TileData[12][5]);
x1y6 = SManager.GetSprite(TileData[1][6]);
x2y6 = SManager.GetSprite(TileData[2][6]);
x3y6 = SManager.GetSprite(TileData[3][6]);
x4y6 = SManager.GetSprite(TileData[4][6]);
x5y6 = SManager.GetSprite(TileData[5][6]);
x6y6 = SManager.GetSprite(TileData[6][6]);
x7y6 = SManager.GetSprite(TileData[7][6]);
x8y6 = SManager.GetSprite(TileData[8][6]);
x9y6 = SManager.GetSprite(TileData[9][6]);
x10y6 = SManager.GetSprite(TileData[10][6]);
x11y6 = SManager.GetSprite(TileData[11][6]);
x12y6 = SManager.GetSprite(TileData[12][6]);
x1y7 = SManager.GetSprite(TileData[1][7]);
x2y7 = SManager.GetSprite(TileData[2][7]);
x3y7 = SManager.GetSprite(TileData[3][7]);
x4y7 = SManager.GetSprite(TileData[4][7]);
x5y7 = SManager.GetSprite(TileData[5][7]);
x6y7 = SManager.GetSprite(TileData[6][7]);
x7y7 = SManager.GetSprite(TileData[7][7]);
x8y7 = SManager.GetSprite(TileData[8][7]);
x9y7 = SManager.GetSprite(TileData[9][7]);
x10y7 = SManager.GetSprite(TileData[10][7]);
x11y7 = SManager.GetSprite(TileData[11][7]);
x12y7 = SManager.GetSprite(TileData[12][7]);
x1y8 = SManager.GetSprite(TileData[1][8]);
x2y8 = SManager.GetSprite(TileData[2][8]);
x3y8 = SManager.GetSprite(TileData[3][8]);
x4y8 = SManager.GetSprite(TileData[4][8]);
x5y8 = SManager.GetSprite(TileData[5][8]);
x6y8 = SManager.GetSprite(TileData[6][8]);
x7y8 = SManager.GetSprite(TileData[7][8]);
x8y8 = SManager.GetSprite(TileData[8][8]);
x9y8 = SManager.GetSprite(TileData[9][8]);
x10y8 = SManager.GetSprite(TileData[10][8]);
x11y8 = SManager.GetSprite(TileData[11][8]);
x12y8 = SManager.GetSprite(TileData[12][8]);
x1y9 = SManager.GetSprite(TileData[1][9]);
x2y9 = SManager.GetSprite(TileData[2][9]);
x3y9 = SManager.GetSprite(TileData[3][9]);
x4y9 = SManager.GetSprite(TileData[4][9]);
x5y9 = SManager.GetSprite(TileData[5][9]);
x6y9 = SManager.GetSprite(TileData[6][9]);
x7y9 = SManager.GetSprite(TileData[7][9]);
x8y9 = SManager.GetSprite(TileData[8][9]);
x9y9 = SManager.GetSprite(TileData[9][9]);
x10y9 = SManager.GetSprite(TileData[10][9]);
x11y9 = SManager.GetSprite(TileData[11][9]);
x12y9 = SManager.GetSprite(TileData[12][9]);
x1y10 = SManager.GetSprite(TileData[1][10]);
x2y10 = SManager.GetSprite(TileData[2][10]);
x3y10 = SManager.GetSprite(TileData[3][10]);
x4y10 = SManager.GetSprite(TileData[4][10]);
x5y10 = SManager.GetSprite(TileData[5][10]);
x6y10 = SManager.GetSprite(TileData[6][10]);
x7y10 = SManager.GetSprite(TileData[7][10]);
x8y10 = SManager.GetSprite(TileData[8][10]);
x9y10 = SManager.GetSprite(TileData[9][10]);
x10y10 = SManager.GetSprite(TileData[10][10]);
x11y10 = SManager.GetSprite(TileData[11][10]);
x12y10 = SManager.GetSprite(TileData[12][10]);
x1y11 = SManager.GetSprite(TileData[1][11]);
x2y11 = SManager.GetSprite(TileData[2][11]);
x3y11 = SManager.GetSprite(TileData[3][11]);
x4y11 = SManager.GetSprite(TileData[4][11]);
x5y11 = SManager.GetSprite(TileData[5][11]);
x6y11 = SManager.GetSprite(TileData[6][11]);
x7y11 = SManager.GetSprite(TileData[7][11]);
x8y11 = SManager.GetSprite(TileData[8][11]);
x9y11 = SManager.GetSprite(TileData[9][11]);
x10y11 = SManager.GetSprite(TileData[10][11]);
x11y11 = SManager.GetSprite(TileData[11][11]);
x12y11 = SManager.GetSprite(TileData[12][11]);
x1y12 = SManager.GetSprite(TileData[1][12]);
x2y12 = SManager.GetSprite(TileData[2][12]);
x3y12 = SManager.GetSprite(TileData[3][12]);
    x4y12 = SManager.GetSprite(TileData[4][12]);
    x5y12 = SManager.GetSprite(TileData[5][12]);
    x6y12 = SManager.GetSprite(TileData[6][12]);
x7y12 = SManager.GetSprite(TileData[7][12]);
    x8y12 = SManager.GetSprite(TileData[8][12]);
    x9y12 = SManager.GetSprite(TileData[9][12]);
    x10y12 = SManager.GetSprite(TileData[10][12]);
    x11y12 = SManager.GetSprite(TileData[11][12]);
    x12y12 = SManager.GetSprite(TileData[12][12]);
    MPanel.add(x1y1);
    MFrame.add(MPanel);
}
} 

問題是在MPanel.add(x1y1);上。 bit表示這不是正確的數據類型,並且只能包含組件。 另外,如果您有任何在Java中動態創建變量的方法,請告訴我。

請幫助?

您不能將ImageIcons添加到JPanels,但是可以將其添加到JLabels。 我建議您改為執行此操作,然后使用體面的布局管理器將JLabel添加到您的JPanel中

順便說一句:您的代碼懇求您使用數組或ArrayLists。 請不要忽略它的請求。

您的大量代碼清單可以縮短為類似的形式,

  int[][] TileData = Map.TileData();

  ImageIcon[][] xyIcons = new ImageIcon[12][12];
  for (int i = 0; i < xyIcons.length; i++) {
     for (int j = 0; j < xyIcons[i].length; j++) {
        xyIcons[i][j] = SManager.GetSprite(TileData[i][j]);
     }
  }

使維護和調試更加容易。


編輯
您聲明:

但是我的目的是使用空布局管理器。 我恨他們。 他們是如此令人困惑。 我認為Java從一開始就不應該擁有它。

不要誤會我的意思,空布局有一些用途,並且我已經使用過它來為組件制作動畫,但是通常應該避免使用。 考慮在此站點上創建並發布一個新問題,在該站點上您將展示使用布局管理器創建GUI的嘗試,顯示您要實現的布局的圖像以及所獲得的圖像。 如果執行此操作,請確保您的代碼無需更改就可以為我們編譯和運行,但應盡可能簡單,其中包含簡單的組件,例如未附加ActionListener的按鈕。 我敢打賭,我們可以幫助您實現不錯的非null布局。 還請記住,許多復雜而靈活的GUI是通過嵌套JPanels創建的,每個JPanel都使用其自己的布局。

該代碼段基於《 Hovercraft Full of Eels所說的內容:

ImageIcon icon = new ImageIcon("/path/to/image.PNG");
JLabel label = new JLabel(icon);
JPanel panel = new JPanel();

setLayout(new FlowLayout());
panel.add(label);
getContentPane().add(panel);
pack();
setVisible(true);  

這就是將圖像放入JPanel

暫無
暫無

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

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