1.构造方法中的isfull[]应该不用重新定义
boolean isfull[]={true,true,true,false,false,false,true,true,true};
改为:
isfull = {true,true,true,false,false,false,true,true,true};2.e.getSource() == b1不是标准的方法
e.getSource()返回的是Object,b1也是Object,用==只能判断它们是否指向内存中的同一对象。不可否认,由于java对于对象分配内存空间的方法是先查找内存中是否有相同的对象,如有就指向它,会使==有时和equals()方法等效。但对于每个类的对象,java都提供了equals()方法,在判断值是否相等时,应该使用equals()方法。
boolean isfull[]={true,true,true,false,false,false,true,true,true};
改为:
isfull = {true,true,true,false,false,false,true,true,true};2.e.getSource() == b1不是标准的方法
e.getSource()返回的是Object,b1也是Object,用==只能判断它们是否指向内存中的同一对象。不可否认,由于java对于对象分配内存空间的方法是先查找内存中是否有相同的对象,如有就指向它,会使==有时和equals()方法等效。但对于每个类的对象,java都提供了equals()方法,在判断值是否相等时,应该使用equals()方法。
解决方案 »
- 怎么在myeclipse8.5中使用debug功能,具体怎么做,请大神们说清楚点,谢谢了
- 有关多线程的同步和互斥
- 我是初学者,第一天就遇到这个问题了,
- 初学者的困惑!
- 如何控制java swing程序只运行一次?
- 数值转换问题
- :)***我的《信息小屋》软件,请各位大哥、大姐给个评价。同时想找帮忙的朋友:)***
- 初学:我只下载了SUN的JDK,还需要怎么配置吗?还要下载什么吗?用文本编辑器编辑JAVA代码吗?是保存的扩展名用什么?
- 看树顶“初学者必读”的呕血补充!!!菜鸟来,高手也看看
- 如何取日期啊?可以一次按我想要的格式取当前日期吗?如我想得到"2001-04-13"
- jcombobox的事件
- jbuilder7如何在运行某个类的时候不编译其他的类
import javax.swing.*;
import java.awt.event.*;
public class den extends JFrame {
int i,j;
JButton b1;
boolean isfull[],path[][];
public static void main(String args[]){
den myden=new den();
myden.setSize(200,200);
myden.getContentPane().invalidate();
myden.getContentPane().validate();
myden.getContentPane().repaint();
myden.setVisible(true);
}
den(){
super("dentance test");
i=0;
j=8;
boolean isfull2[]={true,true,true,false,false,false,true,true,true};
isfull= new boolean[isfull2.length];
for(int i=0;i<isfull.length;i++)
isfull[i]=isfull2[i];
b1=new JButton("dentance");
path=new boolean[9][9];
getContentPane().add(b1);
listen listen1=new listen();
b1.addActionListener(listen1);
this.getContentPane().setLayout(new FlowLayout());
this.getContentPane().add(b1);
}
class listen implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getSource()==b1){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
boolean isfulled=isfull[j];
if(((Math.abs(i-j)==1&&i!=2&&i!=5)||Math.abs(i-j)==3||(Math.abs(i-j)==4&&(i==0||i==4||i==8))||(Math.abs(i-j)==2&&(i==2||i==4||i==6)))&&isfulled==false)
path[i][j]=true;
else path[i][j]=false;
}
}
if(path[0][3]==true)
b1.setText(convert(i,j));
}
}
}
public String convert(int i,int j){
int s=0;
i=add(s,j);
j=add(i,j);
return "win";
}
public int add(int i,int j){
return i+j;
}
}
dentance
1,用for来为isfull赋值;
2,myden.getContentPane().invalidate();
myden.getContentPane().validate();
myden.getContentPane().repaint();
3,为什么要用this指针?
深盼回答为谢;
//: Arrays.java
// Arrays of primitives.public class Arrays {
public static void main(String[] args) {
boolean[] a1 = { true, false, true, true, false };
boolean[] a2;
a2 = a1;
System.out.println(a2.length);
for(int i = 0; i < a2.length; i++)
prt("a2[" + i + "] = " + a2[i]);
a2[0] = false;
for(int i = 0; i < a1.length; i++)
prt("a1[" + i + "] = " + a1[i]);
boolean[] a3 = {false,false,false,true,true};
boolean[] a4 = new boolean[a2.length];
for (int i = 0;i < a3.length ;i++)
{
a4[i] = a3[i];
}
a4[3] = false;
for(int i =0;i < a3.length;i++)
prt("a3[" + i + "] = " + a3[i]);
}
static void prt(String s) {
System.out.println(s);
}
} ///:~
至于this指针表示当前实例的方法调用,在这儿我认为好像不是必要吧.