/**
* 游戏:显示三张牌。
* 显示包含三个标签的框架,每个标签显示一张牌。
* 牌的图像文件命名为1.png,2.png...,54.png,并且储存在image/card目录中。
* 这三张牌是随机选取的。
*/
package Test;
import java.awt.GridLayout;
import javax.swing.*;
public class T129 extends JFrame{
private ImageIcon c1 = new ImageIcon("image/card/1.png");
private ImageIcon c2 = new ImageIcon("image/card/2.png");
private ImageIcon c3 = new ImageIcon("image/card/3.png");
/*
* private ImageIcon cX = new ImageIcon("image/card/X.png");
* 这样X下去太多了,求数组创建。
*/
public static void main(String[] args) {
T129 frame = new T129();
frame.setTitle("Exercise12_9");
frame.setSize(300, 150);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public T129(){
setLayout(new GridLayout(1, 3));
/**
* 下边for语句和swith只是个例子。
* 也请求数组创建。
*/
for (int i = 0; i < 3; i++){
int s = (int)(Math.random() * 3);
switch(s){
case 0:
add(new JLabel(c1));
break;
case 1:
add(new JLabel(c2));
break;
case 2:
add(new JLabel(c3));
break;
default:
break;
}
}
}
}
/*
* 下面的是示例图。
* 以及card文件地址http://www.cs.armstrong.edu/liang/intro8e/book.zip
*/
swing 标签 数组
------解决方案--------------------
private ImageIcon[] c=new ImageIcon[54];
for(int i=0;i<c.length;i++)
c[i]=new("image/card/"+i+".png");//图片从0.png开始;如果从1.png开始,"image/card/"+(i+1)+".png"
下面switch
add(new JLabel(c[s]));
------解决方案--------------------
static int [] ran(int [] is){把数组随即组合
for (int i = 0; i < is.length; i++) {
Random random = new Random() ;
int r = random.nextInt(is.length-i) ;
int t = is[i] ;
is[i] = is[r+i] ;
is[r+i] = t ;
}
return is;
}
------解决方案--------------------
。。复制的时候漏掉了。。
for(int i=0;i<c.length;i++)
c[i]=new ImageIcon("image/card/"+(i+1)+".png");
你应该也能看出来吧。。