声明是指对象,定义才是指类比较好理解。
创新互联建站是一家专业提供黑山企业网站建设,专注与网站建设、成都做网站、HTML5、小程序制作等业务。10年已为黑山众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
java里如何声明一个颜色类对象。
java里如何定义一个颜色类。
如果是第一种的话: java.awt.Color color;
如果是 第二种就是自定义类,需要看具体需求来,或者可以参考java.awt.Color的源码。
1、首先打开java编译软件,引入爱心代码编程。
2、其次打开图面编译,选择编辑颜色。
3、最后在该代码编程中输入需要添加的颜色即可。
本来是在drawcomponent这个里边使用setBackground,你想啊drawcomponent是继承JComponent的所以它是一个容器,所以它同样有setBackground这个方法来设置它的背景颜色
但是因为你在设置它本身为一个画布,因为你用了paintComponent(Graphics g)
这个方法,所以setBackground这个方法即使你用了也看不到很大的效果。但是有一种取代的方法就是在paintComponent(Graphics g)方法中首先就用Graphics 所含有的方法g.setColor(Color.black);来设置背景颜色再用g.fillRect(0, 0, this.getWidth(), this.getHeight());来填满整个容器,这就达到了设置背景目的。然后你再g.setColor(其他颜色);来绘制其它图形.
具体代码:(在你以上的代码上修改了点)
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
g.setColor(Color.black);//这里设置背景颜色
g.fillRect(0, 0, this.getWidth(), this.getHeight());//这里填充背景颜色
double x=100;
double y=100;
double w=200;
double h=150;
Rectangle2D rect=new Rectangle2D.Double(x,y,w,h);
g2.setPaint(Color.white);//这里是你设置其他笔触颜色
g2.draw(rect);
Ellipse2D ellipse=new Ellipse2D.Double();
ellipse.setFrame(rect);
g2.draw(ellipse);
Point2D p1=new Point2D.Double(x-40,y-30);
Point2D p2=new Point2D.Double(x+w+40,y+h+30);
g2.draw(new Line2D.Double(p1,p2));
double centerx=rect.getCenterX();
double centery=rect.getCenterY();
double radius=150;
Ellipse2D circle=new Ellipse2D.Double();
circle.setFrameFromCenter(centerx,centery,centerx+125,centery+125);
g2.draw(circle);
}
测试结果图
1、首先进入javaAPP。
2、其次选择金褐中颜色代码。
3、最后选择想要添加的位置进行添加即可。
按位与、|按位或、位移运算。
pixNum[index++] = (255)|(red64)|(green24)|(blue128);
先赋值,再++。
但是,为什么要与255进行“或”呢?
255,正数,原码是0111 1111,反码是0111 1111,补码是0111 1111。
显然,255跟任何数“或”,是补码进行“或”,结果不是1111 1111,就是0111 1111。当对方为负数时,为前者;当对方为正数时,为后者。即:考察符号位是1还是0。
所以感觉数组赋值那句话,是在选取颜色,红绿蓝分别进行了位移运算,移动的位数就是待考察的位置,移动了之后,通过判断结果是1111 1111还是0111 1111,从而得知红绿蓝中有几种颜色的待考察位置符合要求。
至于前三句,跟0xFF“与”,我就很不理解了,没意义的嘛。
这几句代码,应该是某个具体应用的吧,貌似与硬件关系密切,单纯分析代码很难,结合实际吧,是做什么用的,从那里下手好些。
pixNum[index++] 这种写法,在C编写单片机时会用到,java应用程序好像很少这样写,习惯而已。