画梅花

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java画梅花介绍目录java画梅花介绍...............................................................................................................................21玩法说明...........................................................................................................................22关键技术...........................................................................................................................23实现步骤...........................................................................................................................23.1寻找图片.....................................................................................................................23.2新建一个项目.............................................................................................................23.3新建窗体类.................................................................................................................23.4添加控件.....................................................................................................................33.5设置控件属性.............................................................................................................43.6添加事件....................................................................................................................53.7消除边框....................................................................................................................54效果展示................................................................................................................................7java画梅花介绍1玩法说明画梅花的游戏的玩法是,在一张背景图中,树枝上只有少量的几朵梅花。在窗口左侧,有四朵梅花花瓣,鼠标左键单击想要画的梅花花瓣,然后在树枝上单击即可画梅花,右键单击画好的梅花即可删除。2关键技术在实现画梅花程序时,主要应用了JPanel面板的鼠标事件。在画梅花时,捕获到鼠标左键被按下的事件,并且获取到鼠标指针的位置。在该位置画梅花,即添加一个JLabel控件,并将该组件的ico属性设置为所选择的梅花样式;在删除梅花时,捕获到鼠标右键按下按下事件,并且获取到鼠标指针所在位置的JLabel控件,就是自己画的梅花,然后将该组件在面板中删除。而在添加或删除梅花时,都需要调用JPanel的repaint()方法重绘面板。3实现步骤3.1寻找图片画梅花首先要找到需要用到的梅花背景图,和四个不同类型的梅花花瓣3.2新建一个项目新建一个JavaProject,命名为Test,在工作台的src文件夹中放入Image文件夹,文件夹中放入所需要的五张图片。3.3新建窗口类在项目中新建一个继承JFrame类的DrawPlumBlossomFrame窗体类部分代码如下:publicclassDrawPlumBlossomFrameextendsJFrame{publicDrawPlumBlossomFrame(){super();setResizable(false);getContentPane().setLayout(null);setTitle(画梅花);setBounds(100,100,640,445);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);3.4添加控件在窗体类DrawPlumBlossomFrame中添加Jpanel控件,将其opaque属性设置为false用于将该Jpanel的背景设置为透明,并将窗体的布局设置为绝对布局(null)。添加四个JLabel控件,用于显示梅花形状。部分代码如下:publicvoidmousePressed(finalMouseEvente){if(e.getModifiers()==InputEvent.BUTTON1_MASK){//按下鼠标左键finalJLabelflower=newJLabel();//显示梅花的标签flower.setIcon(SwingResourceManager.getIcon(DrawPlumBlossomFrame.class,/images/+flowerType+.png));if(flower1.equals(flowerType)){//设置第一种类型梅花的大小及位置flower.setBounds(e.getX()-6,e.getY()-12,30,36);}elseif(flower2.equals(flowerType)){//设置第二种类型梅花的大小及位置flower.setBounds(e.getX()-28,e.getY()-30,51,43);}elseif(flower3.equals(flowerType)){//设置第三种类型梅花的大小及位置flower.setBounds(e.getX()-5,e.getY()-15,30,23);}else{//设置第四种类型梅花的大小及位置flower.setBounds(e.getX()-29,e.getY()-25,58,51);}canvasPane.add(flower);//添加梅花canvasPane.repaint();//重绘面板}elseif(e.getModifiers()==InputEvent.BUTTON3_MASK){//按下右键Componentat=canvasPane.getComponentAt(e.getPoint());//获取鼠标位置的组件if(atinstanceofJLabel){//判断是否为JLabelcanvasPane.remove(at);//移除组件canvasPane.repaint();//重绘面板}}}});3.5设置控件的属性将四个JLabel控件的variabel属性设置为flower1,flower2,flower3和flower4,并将它们的ico属性设置为images文件夹里面的flower1.png,flower2.png,flower3.png,flower4.png。具体代码如下:canvasPane.setBounds(160,0,462,345);backgroundPanel.add(canvasPane);finalJPanelpanel=newJPanel();panel.setOpaque(false);panel.setLayout(null);panel.setBounds(10,112,144,159);backgroundPanel.add(panel);finalJLabelflower1=newJLabel();flower1.setBounds(30,85,30,36);panel.add(flower1);flower1.setIcon(SwingResourceManager.getIcon(DrawPlumBlossomFrame.class,/images/flower1.png));finalJLabelflower2=newJLabel();flower2.setBounds(30,35,51,43);panel.add(flower2);flower2.setIcon(SwingResourceManager.getIcon(DrawPlumBlossomFrame.class,/images/flower2.png));finalJLabelflower3=newJLabel();flower3.setBounds(85,45,30,23);panel.add(flower3);flower3.setIcon(SwingResourceManager.getIcon(DrawPlumBlossomFrame.class,/images/flower3.png));finalJLabelflower4=newJLabel();flower4.setIcon(SwingResourceManager.getIcon(DrawPlumBlossomFrame.class,/images/flower4.png));flower4.setBounds(65,75,58,51);panel.add(flower4);3.6添加事件在DrawPlumBlossomFrame窗体类里添加一个Jpanel控件,将其variable属性设置为canvasPane,将其opaque属性设置为false,并将窗体的布局设置为绝对布局(null),方便在鼠标单击处画梅花,然后为该Jpanel控件添加鼠标按下事件,并判断如果按下的是鼠标左键,则根据选择的花朵形状,在窗体上画梅花;如果按下的是鼠标右键,则获取鼠标位置的梅花,然后将其删除。finalBackgroundPanelbackgroundPanel=newBackgroundPanel();backgroundPanel.setBounds(0,0,632,417);backgroundPanel.setImage(SwingResourceManager.getImage(DrawPlumBlossomFrame.class,/images/background.jpg));getContentPane().add(backgroundPanel);finalJPanelcanvasPane=newJPanel();canvasPane.setLayout(null);canvasPane.setOpaque(false);canvasPane.addMouseListener(newMouseAdapter()3.7消除边框设计四个JLabel控件,当鼠标选择第一个控件时,为该控件添加边框,同时消除其他三个控件的边框。具体代码如下:flower1.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功