java面板Panel

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:54:16
package nineGrid;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Dimension;
public class nineGridLayout extends JPanel{
public static final int nothing=0;
public static final int XLINE=1;
public static final int OVAL=2;
private int type=0;
public nineGridLayout(){
}
public nineGridLayout(int type){
this.type=type;
}
protected void piantComonent(Graphics g){
super.paintComponent(g);
switch(type){
case nothing:g.setColor(Color.BLUE);break;
case XLINE:g.setColor(Color.BLACK);
g.drawLine((int)(0.1*getWidth()),(int)(0.1*getHeight()),(int)(0.9*getWidth()),(int)(0.9*getHeight()));
g.drawLine((int)(0.9*getWidth()),(int)(0.1*getHeight()),(int)(0.1*getWidth()),(int)(0.9*getHeight()));
break;
case OVAL:g.setColor(Color.BL

nineGridLayout 的绘制组件方法名有误,piantComponent(Graphics g),应该是paintComponent(Graphics g)

for(int i=0;i<9;i++){
switch((int)(Math.random()*3)){
case 0:add(new nineGridLayout(0));break;
case 1:add(new nineGridLayout(nineGridLayout.XLINE));break;
case 2:add(new nineGridLayout(nineGridLayout.OVAL));break;
}
这段代码有意义吗?你必须知道Math中的random的范围,它从0-10(包括0,不包括10),random很可能都是大于1的数字,你的switch能被执行的几率有多少?

我晕倒:“你必须知道Math中的random的范围,它从0-10(包括0,不包括10)”哈哈~~~~~~

这个程序我就不调试了,估计是你的nineGridLayout ()构造函数的问题,构造函数实现的功能实在是太单调,你打算什么时候调用piantComonent()这个方法呢??