:arrow: :arrow: 画图板程序总结 :arrow: :arrow:
【这一部分主要是对之前的知识的巩固以及在某些方面技能的提升,涉及的知识包括了界面设计编辑、动作以及鼠标监听器的使用、画布(Graphics)类的使用、初级重绘知识,有些东西之前以及总结过了,这里就不在赘述了,只对新了解的知识进行总结】
:D 1、画布类(Graphics)
画布必须在界面全部设置完毕后(即setVisible之后使用才能生效)
形式:Graphics 画布名 = 需要获取其画布的对象.getGraphics();
设置颜色:画布名.setColor(new Color(数字));
画布名.getColor(new Color(数字));
画直线:drawLine()
画椭圆:drawOval()
画矩形:drawRect()
画圆角矩形:drawRoundRect()
等等
:D 2、重要的JRadioButton和ButtonGroup
形式:JRadioButton 类名 =new JRadioButton();
制定此按钮的指令:按钮类名.setActionCommand("指令");
添加到按钮群,形式:
ButtonGroup 按钮群类名 =new ButtonGroup();
按钮群类名.add(按钮类名);
获取指令:String 指令类 =按钮类名
:D 3、绝对位置布局:
先给要布局的面板或者窗口设定为无定型的布局:
需要被布局的类.setLayout(null);
b、需要布局的类.setBounds(x,y,width,height);
:D 4、匿名内部类
a、适用于接口、抽象类,这样就可以不用单独在出去创建一个类,省去了某些值传来传去的麻烦,当然普通类也使用,只是优势没有这么明显罢了
b、形式:
类名 对象名 =new 类名(参数){
<内容>
};【别忘了这里有个分号】
c、ActionListener colorLis = new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获取事件源对象
JButton button = (JButton)e.getSource();
color = button.getBackground();
}
};
:D 5、按钮的动态表现:
获取图片(四个):ImageIcon 图片类名 = new ImageIcon("图片地址");
设置:
图片类名.setIcon(图片1);
【普通状态下】
图片类名.setRolloverIcon(图片2);
【触碰时的状态】
图片类名.setSelectedIcon(图片3);
【选定时的状态】
图片类名.setPressedIcon(图片4);
【按下去时的状态】
:D 6、两个技巧:
Static:静态,可以是静态方法,也可以是静态方法,也可以是静态属性,好处就是,可以跨类调用,而不需要将值通过构造器传来传去。
在方法外定义通用类,比如说:JButton button;
:D 7、Math数学类
内部的方法基本上都是静态的,也就是说不用通过创建对象就可以直接通过类调用:
求最大值:Math.max(数1,数2);
求最小值:Math.min(数1,数2);
求绝对值:Math.abs(数或表达式);
基础的伪随机数:Math.random();[返回一个带正号的0.0~1.0的double类随机数]
、、、等等
:D 8、自动转型的妙用:
比如程序代码中的shape对象,针对的是一个叫toolroot的抽象类,然而具体实例化的时候却是调用的是toolroot的子类:
toolroot shape = null;
------>shape = new DrawEraser(x,y,8,8,g,Color.white);
shape.draw();
【这一部分主要是对之前的知识的巩固以及在某些方面技能的提升,涉及的知识包括了界面设计编辑、动作以及鼠标监听器的使用、画布(Graphics)类的使用、初级重绘知识,有些东西之前以及总结过了,这里就不在赘述了,只对新了解的知识进行总结】
:D 1、画布类(Graphics)
画布必须在界面全部设置完毕后(即setVisible之后使用才能生效)
形式:Graphics 画布名 = 需要获取其画布的对象.getGraphics();
设置颜色:画布名.setColor(new Color(数字));
画布名.getColor(new Color(数字));
画直线:drawLine()
画椭圆:drawOval()
画矩形:drawRect()
画圆角矩形:drawRoundRect()
等等
:D 2、重要的JRadioButton和ButtonGroup
形式:JRadioButton 类名 =new JRadioButton();
制定此按钮的指令:按钮类名.setActionCommand("指令");
添加到按钮群,形式:
ButtonGroup 按钮群类名 =new ButtonGroup();
按钮群类名.add(按钮类名);
获取指令:String 指令类 =按钮类名
:D 3、绝对位置布局:
先给要布局的面板或者窗口设定为无定型的布局:
需要被布局的类.setLayout(null);
b、需要布局的类.setBounds(x,y,width,height);
:D 4、匿名内部类
a、适用于接口、抽象类,这样就可以不用单独在出去创建一个类,省去了某些值传来传去的麻烦,当然普通类也使用,只是优势没有这么明显罢了
b、形式:
类名 对象名 =new 类名(参数){
<内容>
};【别忘了这里有个分号】
c、ActionListener colorLis = new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获取事件源对象
JButton button = (JButton)e.getSource();
color = button.getBackground();
}
};
:D 5、按钮的动态表现:
获取图片(四个):ImageIcon 图片类名 = new ImageIcon("图片地址");
设置:
图片类名.setIcon(图片1);
【普通状态下】
图片类名.setRolloverIcon(图片2);
【触碰时的状态】
图片类名.setSelectedIcon(图片3);
【选定时的状态】
图片类名.setPressedIcon(图片4);
【按下去时的状态】
:D 6、两个技巧:
Static:静态,可以是静态方法,也可以是静态方法,也可以是静态属性,好处就是,可以跨类调用,而不需要将值通过构造器传来传去。
在方法外定义通用类,比如说:JButton button;
:D 7、Math数学类
内部的方法基本上都是静态的,也就是说不用通过创建对象就可以直接通过类调用:
求最大值:Math.max(数1,数2);
求最小值:Math.min(数1,数2);
求绝对值:Math.abs(数或表达式);
基础的伪随机数:Math.random();[返回一个带正号的0.0~1.0的double类随机数]
、、、等等
:D 8、自动转型的妙用:
比如程序代码中的shape对象,针对的是一个叫toolroot的抽象类,然而具体实例化的时候却是调用的是toolroot的子类:
toolroot shape = null;
------>shape = new DrawEraser(x,y,8,8,g,Color.white);
shape.draw();