gpt4 book ai didi

java - 我无法将 ImageIcon 添加到 JPanel

转载 作者:行者123 更新时间:2023-12-01 18:36:09 27 4
gpt4 key购买 nike

在你说之前,我打算使用空布局管理器。我知道这不是最好的做法。

这是我的代码。请原谅效率低下,我只是 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 添加到 JPanel,但可以添加到 JLabels。我建议您这样做,然后将 JLabel 添加到您的 JPanel - 使用合适的布局管理器。

顺便说一句:您的代码恳求您使用数组或 ArrayList。请不要忽视它的请求。

您的庞大代码列表可以缩短为这样,

  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]);
}
}

使维护和调试变得更加容易。

<小时/>

编辑
您声明:

But it is my intent to use a null layout manager. I hate them. They are so confusing to work with. Java from the start should never of had it, in my opinion.

不要误会我的意思,空布局有一些用途,我用它来为组件设置动画,但通常应该避免。考虑在此网站上创建并发布一个新问题,其中您将尝试使用布局管理器创建 GUI,显示您尝试实现的布局的图像以及您将获得的内容的图像。如果您这样做,请确保您的代码编译并为我们运行时不做任何更改,但尽可能简单,包含简单的组件,例如没有附加 ActionListener 的按钮。我敢打赌我们可以帮助您实现一个不错的非空布局。另请记住,许多复杂且灵活的 GUI 是通过嵌套 JPanel 创建的,每个 JPanel 使用自己的布局。

关于java - 我无法将 ImageIcon 添加到 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com