JAVASE窗体应用程序开发技术(二)

/
// 内容:关于“绘图程序”开发过程中遇到的问题总结
// 整理者:山月兰华
// 日期:2014/05/29 20:09 -- 2014/06/01 19:23

1、javax.swing.JFrame和java.awt.Frame的一些区别:
(1)JFrame自己实现了关闭时隐藏窗口的事件监听器,而Frame没有;

2、Menu和MenuItem的一些区别:
(1)Menu 是MenuItem的子类;
(2)MenuItem 能注册ActionListener监听器监听ActionEvent事件,而Menu不能;
(3)Menu 注册MouseListener监听器监听MouseEvent就行了;
3、JDialog用法:
(1)在使用的时候,向JDialog中添加布局,这种方式可复用性不好;
(2)继承JDialog,
在派生类中通过与JFrame相似布局方式自定义JDialog;
这种方式可以自己写一个需要的对话框,并在其他项目中直接用;
可复用性好;
(3)考虑和JOptionPane结合使用:有JOptionPane的对象createDialog();
4、Java中的微调控制器使用:
(1)使用JSpinner和SpinnerModel组件可以创建微调控制器;
5、如何设置java.awt.Canvas的画笔粗细、颜色、画的形状等:
(1)Canvas和JPanel(包括Applet),可以在重写paint方法来绘图,
也可以在响应鼠标、键盘等消息时绘图;
(2)Graphics类没有setStroke()方法,可以转换成Graphics2D后使用;
(3)Stroke接口和其实现类BasicStroke,可以调整图形线条(边缘)的样式;
(4)将Canvas上的图形保存为jpg、bmp、png等格式的图片:
BufferedImage image = new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, this.getWidth(), this.getHeight());
this.paint(g2);
try{
ImageIO.write(image, "jpg", new File(filePath));
return true;
}
catch(IOException e){
e.printStackTrace();
return false;
}
6、Stroke和BasicStroke的用法总结:
(1)边缘部分的{不透明,透明}的组合,产生不同的边缘线:
Stroke dash = new BasicStroke(2.5f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,
3.5f,new float[]{40,30,20,10},0f);
a)若new float[]{40,0},则是实线;
b)若new float[]{40,20,10},则是先从0.0f(作为开始处)开始的40个像素为不透明,
接下来20个像素透明,接下来10个不透明,40个透明,依次类推不断循环,直至形状的边缘部分画完;
7、匿名内部类的方式注册事件监听器:
(1)自定义派生自JDialog的子类,点击按钮,通过匿名内部类的形式,可以让整个对话框也不可见;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值