【发布时间】:2015-05-16 18:14:14
【问题描述】:
我正在尝试练习我相当糟糕的 Java,我偶然发现了这个网站。 http://www.homeandlearn.co.uk/exercises/programming_exercises.html
我正在做练习 6,练习是使用黑色和白色单词创建一个 2d 字符串棋盘。这看起来像
http://www.homeandlearn.co.uk/exercises/images/checkerboard.png
我这样做并没有太大问题,但我想进一步挑战自己。我修改了程序(或尝试)以创建一个实际的 2d 棋盘,就像棋盘一样,但失败了。
这是我的 swing 代码:
import java.applet.*;
import java.awt.*;
import javax.swing.*;
public class exercise6 extends JFrame{
public Image black;
public Image white;
JPanel p = new JPanel();
public int rows = 8;
public Image checkerboard[][] = new Image[rows][rows];
public static void main(String[] args) {
for(int i=0; i<rows; i++) {
for(int j=0; j<rows; j++) {
if(i == j)
checkerboard[i][j] = white;
else if(i== j-2)
checkerboard[i][j] = white;
else if(i== j+2)
checkerboard[i][j] = white;
else if(i==j-4)
checkerboard[i][j] = white;
else if(i==j+4)
checkerboard[i][j] = white;
else
checkerboard[i][j] = black;
}
}
new exercise6();
}//ends the main method
public exercise6() {
super("Checkerboard");
setResizable(false);
setSize(800,800);
setDefaultCloseOperation(CLOSE_ON_EXIT);
p.add(checkerboard);
add(p);
setVisible(true);
}
}
这是我工作时的代码:
public class checkerboard{
public static void main(String[] args) {
int rows = 8;
String checkerboard[][] = new String[rows][rows];
for(int i=0; i<rows; i++) {
for(int j=0; j<rows; j++) {
if(i == j)
checkerboard[i][j] = "white ";
else if(i== j-2)
checkerboard[i][j] = "white ";
else if(i== j+2)
checkerboard[i][j] = "white ";
else if(i==j-4)
checkerboard[i][j] = "white ";
else if(i==j+4)
checkerboard[i][j] = "white ";
else if(i==j+6)
checkerboard[i][j] = "white ";
else if(i==j-6)
checkerboard[i][j] = "white ";
else
checkerboard[i][j] = "black ";
System.out.print(checkerboard[i][j]);
}
System.out.println();
}
}
}
【问题讨论】:
-
您能解释一下出了什么问题吗?谢谢。
-
是的,它可以编译,但是命令提示符会抛出 8 个“无法从静态上下文引用非静态变量”的错误,而且我似乎搞砸了默认的关闭操作行。跨度>
-
不,由于上述错误原因,它无法编译。
-
很抱歉,我不知道您的意思是它是否通过编译器没有错误,或者我是否可以编译它。好的,谢谢,我以后编写更多代码时会记住这一点
-
查看stackoverflow.com/a/30200222/300257,了解制作 Swing 棋盘格所涉及的内容。它涉及使用model / view / controller pattern 并对正方形进行建模。
标签: java image swing multidimensional-array