当前位置: 代码迷 >> J2SE >> 【Swing】关于数组创造标签
  详细解决方案

【Swing】关于数组创造标签

热度:116   发布时间:2016-04-23 22:48:09.0
【Swing】关于数组创建标签
本帖最后由 yi_remember 于 2013-03-06 13:55:23 编辑
/**
 * 游戏:显示三张牌。
 * 显示包含三个标签的框架,每个标签显示一张牌。
 * 牌的图像文件命名为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;
 }
把数组随即组合
------解决方案--------------------
引用:
引用:Java code?123private 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"

……

。。复制的时候漏掉了。。
for(int i=0;i<c.length;i++)
c[i]=new ImageIcon("image/card/"+(i+1)+".png");

你应该也能看出来吧。。