多色板的制作
今天我们来做一个多色板,由简单到复杂,让我们一起来看一下吧!
首先初级画板,显示一个绿色的画板。看一下代码:
import java.awt.Color; import java.awt.GridLayout;
import javax.swing.JFrame; import javax.swing.JPanel;
publicclass Test extends JFrame{ public Test(){ // 定义基础画布 JPanel pnBasic = new JPanel(); // 设置基本画布的背景色 pnBasic.setColor.< /span>GREEN); // 绑定画板和画布 setContentPane(pnBasic); // 设置窗体标题 setTitle("初级画板"); // 设置窗体的大小 // setSize(400,300); // 设置窗体的坐标,这两句相当于下面的一句 // setLocation(200, 200); setBounds(200, 200, 400, 300); // 设置退出方式 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体可见 setVisible(true); } publicstaticvoid main(String[] args) { new Test(); } }
|
执行结果就是显示,标题为初级画板的一个画板,背景色为绿色,可以自己试一下。 |
接下来就要开始完善了,在画板中划分4等份,并且设置上不同的颜色,这就需要我们在画布上添加4个小画板,并且需要设置布局即4等份,看下代码吧:
import java.awt.Color; import java.awt.GridLayout;
import javax.swing.JFrame; import javax.swing.JPanel;
publicclass Test extends JFrame{ public Test(){ // 定义基础画布 JPanel pnBasic = new JPanel(); // 定义指定布局方式,两行两列 GridLayout lyGrid = new GridLayout(2, 2); // 设置基本面板布局为指定布局 pnBasic.setLayout(lyGrid); //定义4块面板,并设置背景颜色 JPanel pnGreen = new JPanel(); pnGreen.setColor.< /span>GREEN); JPanel pnYellow = new JPanel(); pnYellow.setColor.< /span>YELLOW); JPanel pnRed = new JPanel(); pnRed.setColor.< /span>RED); JPanel pnBlue = new JPanel(); pnBlue.setColor.< /span>BLUE);
// 将四块小面板加入到基础面板中 pnBasic.add(pnGreen); pnBasic.add(pnYellow); pnBasic.add(pnRed); pnBasic.add(pnBlue);
// 绑定画板和画布 setContentPane(pnBasic); // 设置窗体标题 setTitle("中级画板"); // 设置窗体的大小 // setSize(400,300); // 设置窗体的坐标,这两句相当于下面的一句 // setLocation(200, 200); setBounds(200, 200, 400, 300); // 设置退出方式 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体可见 setVisible(true); } publicstaticvoid main(String[] args) { new Test(); } }
|
执行结果:显示一个标题为中级画板,且有4个颜色的等分画板。 |
上面的这个画板,每个小画板的颜色是我们事先指定好的,如果想每次执行,这四个小画板的颜色都发生变化即颜色是随机的,应该怎么实现呢。说到随机就会想到随机数,看下面的代码吧:
import java.awt.Color; import java.awt.GridLayout; import java.util.Random;
import javax.swing.JFrame; import javax.swing.JPanel;
publicclass Test extends JFrame{ public Test(){ // 定义基础画布 JPanel pnBasic = new JPanel(); // 定义指定布局方式,两行两列 GridLayout lyGrid = new GridLayout(2, 2); // 设置基本面板布局为指定布局 pnBasic.setLayout(lyGrid); //定义随机数 Random ran = new Random(); //定义4块面板,并设置背景颜色,Color中三个数代表一个颜色,每次都新产生一个随机数,实现颜色随机 JPanel pnGreen = new JPanel(); pnGreen.setBackground(newColor(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256))); JPanel pnYellow = new JPanel(); pnYellow.setBackground(new Color(ran.nextInt(256), ran.nextInt(256),ran.nextInt(256))); JPanel pnRed = new JPanel(); pnRed.setBackground(new Color(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256))); JPanel pnBlue = new JPanel(); pnBlue.setBackground(new Color(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256))); // 将四块小面板加入到基础面板中 pnBasic.add(pnGreen); pnBasic.add(pnYellow); pnBasic.add(pnRed); pnBasic.add(pnBlue);
// 绑定画板和画布 setContentPane(pnBasic); // 设置窗体标题 setTitle("高级画板"); // 设置窗体的大小 // setSize(400,300); // 设置窗体的坐标,这两句相当于下面的一句 // setLocation(200, 200); setBounds(200, 200, 400, 300); // 设置退出方式 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体可见 setVisible(true); } publicstaticvoid main(String[] args) { new Test(); } }
|
结果我们可以想到,标题高级画板并且每次执行颜色都是不一样的。 |
最后完成终极画板吧,我们自己指定行数和列数,且每次颜色都不一样,方法很多,也很简单,可以试一下:
import java.awt.Color; import java.awt.GridLayout; import java.util.Random; import java.util.Scanner;
import javax.swing.JFrame; import javax.swing.JPanel;
publicclass Test extends JFrame{ public Test(){ // 定义基础画布 JPanel pnBasic = new JPanel(); //用户自己输入行数和列数 Scanner scan = new Scanner(System.in); System.out.println("请输入画板的行数和列数:"); int i = scan.nextInt(); int j = scan.nextInt(); // 定义指定布局方式,两行两列 GridLayout lyGrid = new GridLayout(i, j); // 设置基本面板布局为指定布局 pnBasic.setLayout(lyGrid); //定义随机数 Random ran = new Random(); //利用循环,定义每个画板并随机设置背景颜色 for(int k = 0;k < i*j;k++){ JPanel pn = new JPanel(); pn.setBackground(new Color(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256))); pnBasic.add(pn); } // 绑定画板和画布 setContentPane(pnBasic); // 设置窗体标题 setTitle("终级画板"); // 设置窗体的大小 // setSize(400,300); // 设置窗体的坐标,这两句相当于下面的一句 // setLocation(200, 200); setBounds(200, 200, 400, 300); // 设置退出方式 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体可见 setVisible(true); } publicstaticvoid main(String[] args) { new Test(); } }
|
执行结果:请输入画板的行数和列数: 4 4 显示题目为终极画板 4行4列的画板,再执行一次会重新显示一个新的,快试试吧 |
这个画板的功能还有待提高,大家可以接着去尝试。发表之后发现了一个问题所有(Color.都变成了
.< /span>不知道是什么原因啊,特此说明。