Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JLabel ImageIcon的数组_Java_Arrays_Jlabel_Imageicon - Fatal编程技术网

Java JLabel ImageIcon的数组

Java JLabel ImageIcon的数组,java,arrays,jlabel,imageicon,Java,Arrays,Jlabel,Imageicon,我正在尝试创建一个数独游戏。我想使用JSwing API。因此,我使用一组jlabel来显示网格。我画了一张3x3网格的图片,我想在3x3网格中显示它。我的问题是它不会显示图像。有人能帮我解决这个问题吗 我当前的代码如下所示,分为两个类 Main.class package com.brendenbunker; import javax.swing.*; import java.awt.*; public class Main{ FileMaker fileMaker;

我正在尝试创建一个数独游戏。我想使用JSwing API。因此,我使用一组jlabel来显示网格。我画了一张3x3网格的图片,我想在3x3网格中显示它。我的问题是它不会显示图像。有人能帮我解决这个问题吗

我当前的代码如下所示,分为两个类

Main.class

package com.brendenbunker;

import javax.swing.*;
import java.awt.*;

public class Main{

    FileMaker fileMaker;

    void init() {
        fileMaker = new FileMaker();
    }

    public static void main(String args[]){
        ScreenGenerator gui = new ScreenGenerator();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        double width = gui.gridPic.getIconWidth();
        double height = gui.gridPic.getIconHeight();
        int h = (int) height*4;
        int w = (int) width*3;

        gui.setSize(w,h);
        gui.setTitle("Suduko");
        gui.setVisible(true);
    }

}
package com.brendenbunker;

import javax.swing.*;
import java.awt.*;

public class ScreenGenerator extends JFrame{

    //Intro Components
    //JLabel temp;
    JLabel[] gridLabel;
    ImageIcon gridPic;
    //intro Vars


    public ScreenGenerator() {

        setLayout(new FlowLayout());

        gridPic = new ImageIcon(getClass().getResource("/Grid_Unified.png"));
        gridLabel = new JLabel[8];

        for (int i=0; i>=9; i++) {
            gridLabel[i] = new JLabel("Hello");
        }

        for (int i=0; i>=9; i++) {
            gridLabel[i].setIcon(gridPic);
            add(gridLabel[i]);
        }

    }
}
屏幕生成器类

package com.brendenbunker;

import javax.swing.*;
import java.awt.*;

public class Main{

    FileMaker fileMaker;

    void init() {
        fileMaker = new FileMaker();
    }

    public static void main(String args[]){
        ScreenGenerator gui = new ScreenGenerator();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        double width = gui.gridPic.getIconWidth();
        double height = gui.gridPic.getIconHeight();
        int h = (int) height*4;
        int w = (int) width*3;

        gui.setSize(w,h);
        gui.setTitle("Suduko");
        gui.setVisible(true);
    }

}
package com.brendenbunker;

import javax.swing.*;
import java.awt.*;

public class ScreenGenerator extends JFrame{

    //Intro Components
    //JLabel temp;
    JLabel[] gridLabel;
    ImageIcon gridPic;
    //intro Vars


    public ScreenGenerator() {

        setLayout(new FlowLayout());

        gridPic = new ImageIcon(getClass().getResource("/Grid_Unified.png"));
        gridLabel = new JLabel[8];

        for (int i=0; i>=9; i++) {
            gridLabel[i] = new JLabel("Hello");
        }

        for (int i=0; i>=9; i++) {
            gridLabel[i].setIcon(gridPic);
            add(gridLabel[i]);
        }

    }
}

所有帮助满足

将您更改为循环,它不会根据您的条件进入循环

将循环更改为此

    for (int i=0; i<8; i++) {
        gridLabel[i] = new JLabel("Hello");
    }

    for (int i=0; i<8; i++) {
        gridLabel[i].setIcon(gridPic);
        add(gridLabel[i]);
    }
for(int i=0;i
如果您需要图标,则使用上述代码如果您需要文本和图标,则以下更改将帮助您

gridLabel[i] = new JLabel("hello", gridPic, JLabel.CENTER);
希望帮助您了解以下内容:

我曾经用Java编程。我已经转向Python,但我记得这方面有很多困难!使用IO文件系统来显示它。您将在这里找到示例


如果我错了,请纠正我,这是Java?

检查您的for循环…它永远不会进入循环..因此无需检查任何其他示例..这绝对有效..只需更改(..;的
条件即可。
循环。。。