首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JLabel ImageIcon阵列

JLabel ImageIcon阵列
EN

Stack Overflow用户
提问于 2015-05-20 05:31:41
回答 3查看 723关注 0票数 2

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

我现在的代码是这样的,分成两个类。

Main.class

代码语言:javascript
复制
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);
    }

}

ScreenGenerator.class

代码语言:javascript
复制
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]);
        }

    }
}

都帮了忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-20 05:42:39

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

改变循环到这个。

代码语言:javascript
复制
    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]);
    }

会有用的..。

票数 0
EN

Stack Overflow用户

发布于 2015-05-20 05:42:44

代码语言:javascript
复制
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] = new JLabel(gridPic);
            add(gridLabel[i]);
        }

    }
}

如果您需要图标,那么使用上面的代码,如果您想要文本和图标,那么下面的更改将帮助您

代码语言:javascript
复制
gridLabel[i] = new JLabel("hello", gridPic, JLabel.CENTER);

希望这能帮上忙

票数 0
EN

Stack Overflow用户

发布于 2015-05-20 05:50:31

看看这个:Displaying Image in Java

我以前用Java编程。我已经转到Python上了,但我记得在这方面有很多困难!使用IO文件系统来显示它。你可以在这里找到例子。

如果我错了,这是Java吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30341015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档