临近圣诞节,复习不下去了就突然想画一棵圣诞树,正好苹果那么贵买不起就用这个表达一下心意吧
思路:
计划用Java的Graphics画笔画一个圣诞树,用若干个20*20像素的正方形表示。
1.首先用C写了个大概的样子出来确定了主要的写法和逻辑
圣诞树1.0
运行出来感觉这样的太丑了,就决定下面两个三角形都不要尖的部分了
确定了写法后就用Java来写,还是要用到图形化界面,在一个面板里直接用fillRect()方法画正方形
圣诞树2.0
画完只有一个树有点没意思,就用fillRoundRect()在树尖上加上了小球
画到这里还是没那味儿,就打算弄个开关让小球会变色模拟发光。加一个按钮添加事件,用来触发一个时间事件,通过时间事件每隔2秒就改变一下小球的颜色,最后还加上了一个背景音乐
圣诞树3.0
演示视频:
用Java画了一颗圣诞树
现在就有那味儿了
细节
画图形的时候要填充颜色,默认填充的Graphics画笔设置的颜色,可以用setColor()方法修改填充颜色,可以直接用Color类自带的几种颜色,但是实在是太丑了,所以可以选择先创建一个Color类的对象,然后打开PS选出喜欢的颜色查看这个颜色的RGB,然后设置该对象的RGB就可以得到这个颜色,最后将这个对象作为setColor()方法的参数即可
1Color red = new Color(255, 0, 0) ; 2g.setColor(red) ;
按钮设置为一个图片要用setIcon()方法,但是可能会有存在边框、背景颜色的问题,对于边框使用setBorder()方法,参数设置为null;对于背景颜色使用setContentAreaFilled()方法,参数设置为false
1onOff.setBorder(null) ; //去除边框 2onOff.setContentAreaFilled(false) ; //去除默认背景颜色
按钮图片大小不合适,首先要压缩图片,将图片放在ImageIcon类的一个对象中,然后使用setImage()方法,参数为icon.getImage().getScaledInstance(x,y, 0)
完整代码
完整代码如下:
Start.java
1package christmasTree; 2 3public class Start { 4 5 public static void main(String[] args) { 6 new MyFrame() ; 7 } 8 9}
MyFrame.java
1package christmasTree; 2 3import javax.swing.JFrame; 4 5public class MyFrame extends JFrame{ 6 MyPanel p ; 7 MyFrame() { 8 p = new MyPanel() ; 9 add(p) ; 10 setBounds(400, 200, 800, 800) ; 11 setVisible(true) ; 12 validate() ; 13 setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE) ; 14 } 15}
总结:
提前祝大家圣诞快乐 ! ! ! !
完整项目链接:https://pan.baidu.com/s/15LrMHiNdnBsjDEO_1IMuKA
提取码: qutw 复制这段内容后打开百度网盘手机App,操作更方便哦