package PhotoConnectGame;import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class PhotoConnectGameUI extends JFrame
{private final int NUMBER_BUTTON = 8;
private JTextField display;
private JLabel label;
private JButton button_start,button_end;
JButton b[] = new JButton[NUMBER_BUTTON];
private JPanel panel,panel1,panel2,panel3;
private int array[]={1,2,4,3,5,6,7,0};
private int a,c,d,e,f,g,h,i;
private void Random(int array[])
{
Random random = new Random();
for(int i = 7; i >= 0; i--)
{
int j = random.nextInt(i);
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
int a=array[0];
int i=array[1];
int c=array[2];
int d=array[3];
int e=array[4];
int f=array[5];
int g=array[6];
int h=array[7]; }
public PhotoConnectGameUI()
{
super("图形配对游戏");
this.setSize(500,480);
this.setLocation(300,100);
this.setLayout(new GridLayout(3,1,0,30));
JPanel panel=new JPanel(new GridLayout(1,4,10,10));
JPanel panel1=new JPanel(new GridLayout(1,4,10,10));
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER,30,0));
JPanel panel3=new JPanel(new FlowLayout(FlowLayout.LEFT,30,0));
this.add(panel,BorderLayout.NORTH);
this.add(panel1,BorderLayout.CENTER);
this.add(panel2,BorderLayout.SOUTH);
//Random(array);
b[a] = new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[i] = new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[c] = new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[d] = new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
b[e]= new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[f]= new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[g]=new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[h]=new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
for(int i=0;i<4;i++)
{
panel1.add(b[i]);
}
for (int j =4;j<8;j++)
{
panel.add(b[j]);
} label=new JLabel("已经点击:");
this.add(label);
panel3.add(label);
display=new JTextField(8);
this.add(display,FlowLayout.CENTER);
panel3.add(display);
panel2.add(panel3);
button_start=new JButton("开始");
this.add(button_start,FlowLayout.CENTER);
panel2.add(button_start);
button_end=new JButton("结束");
this.add(button_end,FlowLayout.RIGHT);
panel2.add(button_end);
this.setResizable(false);
this.setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent i)
{
System.exit(0);
}
});
}
public static void main(String arg[])
{
new PhotoConnectGameUI();
}
}这个程序是讲:
有8张图片,背面的图案都相同,正面有四种图案,每种图案有两张。开始时,8张图片都是背面朝上排列,界面上有[开始]及[结束]按钮,还有一个文本框记录点击图片的次数。点击[开始],8张图片都是背面朝上,并每次随机排列,游戏开始:点击图片,第一次点击的图片会自动翻开,第二次点击图片时,系统判断与上一次打开的图片的图案是否相同,如果相同,则图片打开,如果不同,上一次打开的图片有会扣下。重复这个过程,直到所有的图片都打开,或按[开始]及[结束]按钮。
现在我卡在随机排列上。编译无错,运行时提示:
Exception in thread "main" java.lang.IllegalArgumentException: n must be positiveat java.util.Random.nextInt<Random.java:250>
at PhotoConnectGame.PhotoConnectGameUI.random<PhotoConnectGameUI.java.22>
at
PhotoConnectGame.PhotoConnectGameUI.<init><PhotoConnectGameUI.java:53>
at
PhotoConnectGame.PhotoConnectGameUI.main(PhotoConnectGameUI.java:112>这是random函数出错,我的思路是先给数组赋值,然后交换达到随机排列的效果,请教错误原因,然后该怎么改。
注释掉随机排列后,运行时出错,提示:Exception in thread "main" java.lang.NullPointerExceptionat java.awt.Container.addImpl<Container.java:1027>
at java.awt.Container.add<Container.java:935>
at javax.swing.JFrame.addImpl<JFrame.java:545>
at java.awt.Container.add<Container.java:352>
at PhotoConnectGame.PhotoConnectGameUI.<init><PhotoConnectGameUI>
at PhotoConnectGame.PhotoConnectGameUI.main<PhotoConnectGameUI.java:120>不可以创建按钮以后添加到面板中吗?该怎么改?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class PhotoConnectGameUI extends JFrame
{private final int NUMBER_BUTTON = 8;
private JTextField display;
private JLabel label;
private JButton button_start,button_end;
JButton b[] = new JButton[NUMBER_BUTTON];
private JPanel panel,panel1,panel2,panel3;
private int array[]={1,2,4,3,5,6,7,0};
private int a,c,d,e,f,g,h,i;
private void Random(int array[])
{
Random random = new Random();
for(int i = 7; i >= 0; i--)
{
int j = random.nextInt(i);
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
int a=array[0];
int i=array[1];
int c=array[2];
int d=array[3];
int e=array[4];
int f=array[5];
int g=array[6];
int h=array[7]; }
public PhotoConnectGameUI()
{
super("图形配对游戏");
this.setSize(500,480);
this.setLocation(300,100);
this.setLayout(new GridLayout(3,1,0,30));
JPanel panel=new JPanel(new GridLayout(1,4,10,10));
JPanel panel1=new JPanel(new GridLayout(1,4,10,10));
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER,30,0));
JPanel panel3=new JPanel(new FlowLayout(FlowLayout.LEFT,30,0));
this.add(panel,BorderLayout.NORTH);
this.add(panel1,BorderLayout.CENTER);
this.add(panel2,BorderLayout.SOUTH);
//Random(array);
b[a] = new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[i] = new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[c] = new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[d] = new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
b[e]= new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[f]= new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[g]=new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[h]=new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
for(int i=0;i<4;i++)
{
panel1.add(b[i]);
}
for (int j =4;j<8;j++)
{
panel.add(b[j]);
} label=new JLabel("已经点击:");
this.add(label);
panel3.add(label);
display=new JTextField(8);
this.add(display,FlowLayout.CENTER);
panel3.add(display);
panel2.add(panel3);
button_start=new JButton("开始");
this.add(button_start,FlowLayout.CENTER);
panel2.add(button_start);
button_end=new JButton("结束");
this.add(button_end,FlowLayout.RIGHT);
panel2.add(button_end);
this.setResizable(false);
this.setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent i)
{
System.exit(0);
}
});
}
public static void main(String arg[])
{
new PhotoConnectGameUI();
}
}这个程序是讲:
有8张图片,背面的图案都相同,正面有四种图案,每种图案有两张。开始时,8张图片都是背面朝上排列,界面上有[开始]及[结束]按钮,还有一个文本框记录点击图片的次数。点击[开始],8张图片都是背面朝上,并每次随机排列,游戏开始:点击图片,第一次点击的图片会自动翻开,第二次点击图片时,系统判断与上一次打开的图片的图案是否相同,如果相同,则图片打开,如果不同,上一次打开的图片有会扣下。重复这个过程,直到所有的图片都打开,或按[开始]及[结束]按钮。
现在我卡在随机排列上。编译无错,运行时提示:
Exception in thread "main" java.lang.IllegalArgumentException: n must be positiveat java.util.Random.nextInt<Random.java:250>
at PhotoConnectGame.PhotoConnectGameUI.random<PhotoConnectGameUI.java.22>
at
PhotoConnectGame.PhotoConnectGameUI.<init><PhotoConnectGameUI.java:53>
at
PhotoConnectGame.PhotoConnectGameUI.main(PhotoConnectGameUI.java:112>这是random函数出错,我的思路是先给数组赋值,然后交换达到随机排列的效果,请教错误原因,然后该怎么改。
注释掉随机排列后,运行时出错,提示:Exception in thread "main" java.lang.NullPointerExceptionat java.awt.Container.addImpl<Container.java:1027>
at java.awt.Container.add<Container.java:935>
at javax.swing.JFrame.addImpl<JFrame.java:545>
at java.awt.Container.add<Container.java:352>
at PhotoConnectGame.PhotoConnectGameUI.<init><PhotoConnectGameUI>
at PhotoConnectGame.PhotoConnectGameUI.main<PhotoConnectGameUI.java:120>不可以创建按钮以后添加到面板中吗?该怎么改?
解决方案 »
- 哥哥姐姐们,能帮我解答吗?这个小问题。。
- 初学者请高手帮帮忙 判断输入的字符串是否为数字串
- 不知道这个问题怎么搞!!
- 1082679901的格式换算成具体时间的问题
- 用什么方法删除JTextArea其全部内容??
- 各位有些关键字的用法不是很懂,手上的书没查到,能帮我解析一下吗?
- (java初学者的问题)现在的java 非常火,但我想知道用他能写出什么样的程序来呢?
- 为什么没人来(laocai8),真失望,雷锋哪去了?????????
- java的应用程序中如何定义一个全局变量,在程序的任何地方都可以修改使用?
- 怎样给回答我的问题的人送分?
- 一个Java 拿火柴小程序 求那位大虾帮做个图形界面
- 请教关于java绘图工具的问题
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; public class PhotoConnectGameUI extends JFrame
{private final int NUMBER_BUTTON = 8;
private JTextField display;
private JLabel label;
private JButton button_start,button_end;
JButton b[] = new JButton[NUMBER_BUTTON];
private JPanel panel,panel1,panel2,panel3;
private int array[]={1,2,4,3,5,6,7,0};
private int a,c,d,e,f,g,h,i;
private void Random(int array[])
{
Random random = new Random();
for(int i = 7; i >= 0; i--)
{
int j = random.nextInt(i); ///这里,参数不能是int,必须是long
int temp = array[j];
array[j] = array[i];
array[i] = temp;
} int a=array[0];
int i=array[1];
int c=array[2];
int d=array[3];
int e=array[4];
int f=array[5];
int g=array[6];
int h=array[7]; } public PhotoConnectGameUI()
{
super("图形配对游戏");
this.setSize(500,480);
this.setLocation(300,100);
this.setLayout(new GridLayout(3,1,0,30));
JPanel panel=new JPanel(new GridLayout(1,4,10,10));
JPanel panel1=new JPanel(new GridLayout(1,4,10,10));
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER,30,0));
JPanel panel3=new JPanel(new FlowLayout(FlowLayout.LEFT,30,0));
this.add(panel,BorderLayout.NORTH);
this.add(panel1,BorderLayout.CENTER);
this.add(panel2,BorderLayout.SOUTH); //Random(array); b[a] = new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[i] = new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[c] = new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[d] = new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
b[e]= new JButton(new ImageIcon(Resource.getImgResource("/0.gif")));
b[f]= new JButton(new ImageIcon(Resource.getImgResource("/2.gif")));
b[g]=new JButton(new ImageIcon(Resource.getImgResource("/1.gif")));
b[h]=new JButton(new ImageIcon(Resource.getImgResource("/3.gif")));
for(int i=0;i <4;i++)
{
panel1.add(b[i]);/////你的b好多没被赋值,检查你自己是怎么赋值的
}
for (int j =4;j <8;j++)
{
panel.add(b[j]);
} label=new JLabel("已经点击:");
this.add(label);
panel3.add(label);
display=new JTextField(8);
this.add(display,FlowLayout.CENTER);
panel3.add(display);
panel2.add(panel3);
button_start=new JButton("开始");
this.add(button_start,FlowLayout.CENTER);
panel2.add(button_start);
button_end=new JButton("结束");
this.add(button_end,FlowLayout.RIGHT);
panel2.add(button_end);
this.setResizable(false); this.setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent i)
{
System.exit(0);
}
});
} public static void main(String arg[])
{
new PhotoConnectGameUI();
}
} 这个程序是讲:
有8张图片,背面的图案都相同,正面有四种图案,每种图案有两张。开始时,8张图片都是背面朝上排列,界面上有[开始]及[结束]按钮,还有一个文本框记录点击图片的次数。点击[开始],8张图片都是背面朝上,并每次随机排列,游戏开始:点击图片,第一次点击的图片会自动翻开,第二次点击图片时,系统判断与上一次打开的图片的图案是否相同,如果相同,则图片打开,如果不同,上一次打开的图片有会扣下。重复这个过程,直到所有的图片都打开,或按[开始]及[结束]按钮。
现在我卡在随机排列上。 编译无错,运行时提示:
Exception in thread "main" java.lang.IllegalArgumentException: n must be positive at java.util.Random.nextInt <Random.java:250>
at PhotoConnectGame.PhotoConnectGameUI.random <PhotoConnectGameUI.java.22>
at
PhotoConnectGame.PhotoConnectGameUI. <init> <PhotoConnectGameUI.java:53>
at
PhotoConnectGame.PhotoConnectGameUI.main(PhotoConnectGameUI.java:112> 这是random函数出错,我的思路是先给数组赋值,然后交换达到随机排列的效果,请教错误原因,然后该怎么改。
注释掉随机排列后,运行时出错,提示: Exception in thread "main" java.lang.NullPointerException at java.awt.Container.addImpl <Container.java:1027>
at java.awt.Container.add <Container.java:935>
at javax.swing.JFrame.addImpl <JFrame.java:545>
at java.awt.Container.add <Container.java:352>
at PhotoConnectGame.PhotoConnectGameUI. <init> <PhotoConnectGameUI>
at PhotoConnectGame.PhotoConnectGameUI.main <PhotoConnectGameUI.java:120>