Java非程序(检查解决方案)不工作
我正在制作这个非程序,我被困在制作程序检查解决方案(listener2)。我希望你对正在发生的事情一无所知。我刚开始编程,所以要温柔 主要内容: 听众2:Java非程序(检查解决方案)不工作,java,swing,actionlistener,Java,Swing,Actionlistener,我正在制作这个非程序,我被困在制作程序检查解决方案(listener2)。我希望你对正在发生的事情一无所知。我刚开始编程,所以要温柔 主要内容: 听众2: import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; public class Resitve extends Start implements Ac
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class Resitve extends Start implements ActionListener {
JButton gumbResitev1 = Start.gumbResitev1;
public Resitve (JButton gumbResitev1){
this.gumbResitev1 = gumbResitev1;
}
public void actionPerformed(ActionEvent e) {
JButton gumb = (JButton) e.getSource();
String[] stetjeV = new String[10];
int stevecC = 0;
for (int i = 1; i < Start.gumbi.length; i++) {
stevecC = 0;
stetjeV[i] = "";
for (int j = 1; j < Start.gumbi.length; j++) {
if (gumb.getBackground() == Color.BLACK) {
stevecC += 1;
} else if (gumb.getBackground() == Color.WHITE) {
stetjeV[i] += stevecC + " ";
}
}
if (stevecC != 0) {
stetjeV[i] += stevecC + " ";
}
}
String[] stetjeS = new String[10];
int stevecS = 0;
for (int i = 0; i < Start.gumbi.length; i++) {
stevecS = 0;
stetjeS[i] = "";
for (int j = 0; j < Start.gumbi.length; j++) {
if (gumb.getBackground() == Color.BLACK) {
stevecS += 1;
} else if(gumb.getBackground() == Color.WHITE){
stetjeS[j] += stevecS+ " ";
}
}
if (stevecS !=0) {
stetjeS[i] += stevecS+ " ";
}
}
for (int i = 0; i < Start.gumbi.length; i++) {
for (int j = 0; j < Start.gumbi.length; j++) {
if (stetjeS[j]==stolpci[j] && stetjeV[i]==vrstice[i] ) {
System.out.println("je prav");
}else{
System.out.println("ni prav");
}
}
}
}
}
导入java.awt.Color;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
公共类Resitve扩展Start实现ActionListener{
JButton gumbResitev1=Start.gumbResitev1;
公共Resitve(JButton gumbResitev1){
this.gumbResitev1=gumbResitev1;
}
已执行的公共无效操作(操作事件e){
JButton gumb=(JButton)e.getSource();
字符串[]stetjeV=新字符串[10];
int-stevecC=0;
对于(int i=1;i
在开始时:
static JButton[][] gumbi = new JButton[11][11];
在Resitve
String[] stetjeV = new String[10];
for (int i = 1; i < Start.gumbi.length; i++) {
stevecC = 0;
stetjeV[i] = ""; // NPE! because 10 is less than 11
在Start中还有10个元素的数组。我们只知道您告诉我们的内容,不幸的是,到目前为止,这并不多。提问时,您的责任是尽可能让其他人理解您的问题,这意味着在提问时投入更多的精力,而不是简单地在此处转储代码。请解释一下,以便我们能理解。请浏览、和部分,了解此网站的工作原理,并帮助您改进当前和将来的问题。例如:此代码到底应该做什么?每个班级的具体角色是什么?它正确地做了什么?它不应该做的是什么?它在做什么不该做的?您是否收到错误或异常消息?如果是的话,你能把它们寄出去吗?您采取了哪些步骤来调试您的问题,这些努力的结果是什么。。。。等等…监听器2应该检查游戏中的黑色区域是否等于游戏的解。当我在游戏中按下按钮时,它应该打印(syso)它的正确或不正确,但当我按下按钮时,什么也没有发生。1)你在哪里向任何按钮添加第二个侦听器?2) 如果它没有添加到任何JButton中,那么它应该如何做呢?3) 我担心您让它扩展Start,因为这看起来很危险,而且可能会误用继承。1)我添加了侦听器,但得到一个错误:线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException:10 at Resitve.actionPerformed(Resitve.java:23)中出现异常2)我扩展start只是为了让我的变量进入监听器谢谢您提供了非常精确和全面的信息“错误来了”。线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException:10在Resitve.actionPerformed(Resitve.java:56)在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)在javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)。。。。。。。。。。以此类推,也许你有另一个包含10个元素的数组?
static JButton[][] gumbi = new JButton[11][11];
String[] stetjeV = new String[10];
for (int i = 1; i < Start.gumbi.length; i++) {
stevecC = 0;
stetjeV[i] = ""; // NPE! because 10 is less than 11
String[] stetjeS = new String[10];