我正在尝试创建一个数独游戏。我想使用JSwing API。因此,我使用一个JLabels数组来显示网格。我有一张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);
}
}ScreenGenerator.class
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]);
}
}
}都帮了忙
发布于 2015-05-20 05:42:39
更改您的循环,它将不会进入循环根据您的条件。
改变循环到这个。
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]);
}会有用的..。
发布于 2015-05-20 05:42:44
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]);
}
}
}如果您需要图标,那么使用上面的代码,如果您想要文本和图标,那么下面的更改将帮助您
gridLabel[i] = new JLabel("hello", gridPic, JLabel.CENTER);希望这能帮上忙
发布于 2015-05-20 05:50:31
我以前用Java编程。我已经转到Python上了,但我记得在这方面有很多困难!使用IO文件系统来显示它。你可以在这里找到例子。
如果我错了,这是Java吗?
https://stackoverflow.com/questions/30341015
复制相似问题