public class pictureContent extends JPanel{ private JLabel[] pics; private int picsNumBound; private GridLayout layout = new GridLayout(0, 3,30, 20); private int picNum; // Constructor pictureContent() { super(); this.setLayout(layout); this.picsNumBound = 10; this.pics = new JLabel[picsNumBound]; this.generateRandomPics(); this.setVisible(true); } /** * Generate Pics of Rabits */ private void generateRandomPics() { Random r = new Random(); int picsNum = r.nextInt(this.picsNumBound) + 1; for (int i=0;i<picsNumBound;i++){ ImageIcon rabbit = new ImageIcon("./rabbit.jpg"); JLabel pic = new JLabel(rabbit); pics[i] = pic; // JButton button = new JButton(rabbit); this.add(pic); } for (int i=picsNum;i<picsNumBound;i++) this.pics[i].setVisible(false); this.picNum = picsNum; } /** * * @return pics num of rabbits */ public int getPicNum(){ return this.picNum; } /** * reGenerate the rabbits pics */ public void reGenerateRandomPics(){ Random r = new Random(); int picsNum = r.nextInt(this.picsNumBound) + 1; for (int i=0;i<picsNum;i++) this.pics[i].setVisible(true); for (int i=picsNum;i<picsNumBound;i++) this.pics[i].setVisible(false); this.picNum = picsNum; } }解读代码
时间: 2024-02-15 21:10:10 浏览: 76
详谈PHP中public,private,protected,abstract等关键字的用法
这是一个 Java 类 `pictureContent`,继承自 `JPanel`,用于显示兔子图片。它有以下字段:
- `pics`:一个 `JLabel` 数组,用于保存兔子图片的标签。
- `picsNumBound`:一个整数,表示兔子图片的最大数量。
- `layout`:一个 `GridLayout`,用于设置图片的布局。
- `picNum`:一个整数,表示当前显示的兔子图片数量。
它有以下方法:
- 构造方法 `pictureContent()`:设置布局、初始化 `pics` 数组、生成随机数量的兔子图片,并将其添加到面板中,最后设置可见性为 `true`。
- `generateRandomPics()`:生成随机数量的兔子图片,并将其添加到面板中。首先生成一个随机数 `picsNum`,表示兔子图片的数量,然后用循环将 `picsNum` 个兔子图片添加到面板中,同时将 `pics` 数组对应位置的标签设置为该图片的标签。最后将数量大于 `picsNum` 的兔子图片的可见性设置为 `false`,并将当前显示的兔子图片数量 `picNum` 设置为 `picsNum`。
- `getPicNum()`:返回当前显示的兔子图片数量 `picNum`。
- `reGenerateRandomPics()`:重新生成随机数量的兔子图片,并将其添加到面板中。首先生成一个随机数 `picsNum`,表示兔子图片的数量。然后将前 `picsNum` 个兔子图片的可见性设置为 `true`,将 `picsNum` 之后的兔子图片的可见性设置为 `false`。最后将当前显示的兔子图片数量 `picNum` 设置为 `picsNum`。
阅读全文