这是我刚开始学习Java的另一个实例,先上图。。
首先也是先从界面开始,第一就是主要面板,就是一个JFrame,前面的按钮是JRadioButton,然后还有一个
JComboBox下拉列表
public void UI() { //主界面 jf.setTitle("黄飞自创画图板");//标题 jf.setSize(500, 300);//大小 jf.setLocation(400, 400);//初始位置 jf.setLayout(new FlowLayout(FlowLayout.LEFT));//布局 jf.setResizable(false);//是否可以改变大小 jf.setDefaultCloseOperation(3);//点击关闭按钮退出程序 JButton jb = new JButton("选颜色"); // jc=new JComboBox<String>();//一个下拉列表 //添加各种选项 jc.addItem("6"); jc.addItem("12"); jc.addItem("24"); //”直线“按钮 JRadioButton jr1 = new JRadioButton("直线"); jr1.setActionCommand("直线"); //添加监听 jr1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=false; f2=false; } }); //“圆”按钮 JRadioButton jr2 = new JRadioButton("圆"); jr2.setActionCommand("圆"); jr2.addActionListener(new ActionListener(){//添加监听 @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=false; f2=false; } }); //“举行”按钮 JRadioButton jr3 = new JRadioButton("矩形"); jr3.setActionCommand("矩形"); jr3.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=false; f2=false; } }); JRadioButton jr4 = new JRadioButton("铅笔"); jr4.setActionCommand("铅笔"); jr4.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=true; f2=false; } }); JRadioButton jr5=new JRadioButton("笔刷"); jr5.setActionCommand("笔刷"); jr5.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=true; f2=false; } }); JRadioButton jr6=new JRadioButton("橡皮"); jr6.setActionCommand("橡皮"); jr6.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub f=true; f2=true; } }); //bg是一个buttonGroup对象,用来存放按钮 bg.add(jr1); bg.add(jr2); bg.add(jr3); bg.add(jr4); bg.add(jr5); bg.add(jr6); //将按钮添加到窗体上去 jf.add(jr1); jf.add(jr2); jf.add(jr3); jf.add(jr4); jf.add(jr5); jf.add(jr6); jf.add(jb); jf.add(new JLabel("尺寸")); jf.add(jc);
其中对按钮的监听只是改变f的值,f后面会用到,来控制一些方法,然后,要说的的就是,用了一个ButtonGroup啦储存按钮,这样我就可以通过ButtonGroup里面的getSelection().getActionCommand()来得到目前是哪个按钮被按下了,这样才能在画图的监听方法中来具体实现画那种图
// 监听选颜色按钮 jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub showColorSelecter();//显示颜色选择器 } });
添加一个按钮监听来实现对颜色的选择
// 颜色选择函数 private void showColorSelecter() { if(f2==false){ color = JColorChooser.showDialog(null, "请选择颜色", Color.black);} }
JColorChooser.showDialog(null, "请选择颜色", Color.black);实现下面的东东,并且返回您选择的颜色
以下方法可以实现在面板上对鼠标的监听
jf.addMouseMotionListener(me);//添加鼠标监听,
jf.addMouseListener(me);//添加鼠标监听
其中的me是一个MouseAdapter对象,他继承了很多鼠标监听的接口,具体查看API文档
具体实现的方法
private MouseAdapter me = new MouseAdapter() {//一个鼠标监听对象 public void mousePressed(MouseEvent e) {//鼠标按下 x1 = e.getX(); y1 = e.getY(); } public void mouseReleased(MouseEvent e) {//鼠标抬起 x2 = e.getX(); y2 = e.getY(); g.setColor(color); // g.drawLine(x1,y1,x2,y2); Huatu(); } public void mouseDragged(MouseEvent e){//鼠标拖动 if(f==true){ x2 = e.getX(); y2 = e.getY(); g.setColor(color); Huatu(); x1 = x2; y1 = y2; } } };
huatu方法
private void Huatu() { if (bg.getSelection().getActionCommand().equals("铅笔")) { g.drawLine(x1, y1, x2, y2);//画线 } if (bg.getSelection().getActionCommand().equals("直线")) { g.drawLine(x1, y1, x2, y2); } if (bg.getSelection().getActionCommand().equals("矩形")) { //画矩形,参数为左上角坐标,长和宽 if(x1>x2&&y2>y1){ g.drawRect(x2,y1,x1-x2,y2-y1); } if(x2>x1&&y1>y2){ g.drawRect(x1,y2,x2-x1,y1-y2); } if(x1>x2&&y2<y1){ g.drawRect(x2,y2,x1-x2,y1-y2); } else{ g.drawRect(x1,y1,x2-x1,y2-y1); } //g.drawRect(x1, y1, Math.abs(x2 - x1), Math.abs(y2 - y1)); } //画圆,参数为外接矩形左上角坐标,长和宽 if (bg.getSelection().getActionCommand().equals("圆")) { if(x1>x2&&y2>y1){ g.drawOval(x2,y1,x1-x2,y2-y1); } if(x2>x1&&y1>y2){ g.drawOval(x1,y2,x2-x1,y1-y2); } if(x1>x2&&y2<y1){ g.drawOval(x2,y2,x1-x2,y1-y2); } else{ g.drawOval(x1,y1,x2-x1,y2-y1); } } if(bg.getSelection().getActionCommand().equals("笔刷")){ if(jc.getSelectedItem().equals("6")){ n=6.0f; } if(jc.getSelectedItem().equals("12")){ n=12.0f; } if(jc.getSelectedItem().equals("24")){ n=55.0f; } g.setStroke(new BasicStroke(n)); g.drawLine(x1, y1, x2, y2); g.setStroke(new BasicStroke(1.0f));//设置画笔的大小 } if(bg.getSelection().getActionCommand().equals("橡皮")){ if(jc.getSelectedItem().equals("6")){ n=6.0f; } if(jc.getSelectedItem().equals("12")){ n=12.0f; } if(jc.getSelectedItem().equals("24")){ n=55.0f; } g.setColor(g.getBackground()); g.setStroke(new BasicStroke(n)); g.drawLine(x1, y1, x2, y2); g.setStroke(new BasicStroke(1.0f)); g.setColor(Color.black);//设置颜色 } }
其中的橡皮,只是把颜色换成背景色而已。。getSelectedItem().是获取下拉列表中你选择的数据
这个例子对实现鼠标监听,Graphcs类有个很好的加深,鼠标监听用来获取鼠标坐标
源代码已经上传,又不懂之处可以找我,或者留言,505860922
相关推荐
【JAVA简易画图板】是一个基于Java编程语言开发的简单绘图应用程序,它为用户提供了一个基本的图形界面,用户可以通过这个界面进行简单的绘画操作。这个程序包含了一些基本的绘图功能,如绘制形状、使用铅笔工具以及...
在Java编程语言中,实现一个简单的Windows画图板是一个经典的练习,它可以帮助初学者更好地理解图形用户界面(GUI)的设计以及事件处理机制。这个项目通常会涉及到Java的Swing库,这是一个用于创建桌面应用程序的GUI...
在这个"java swing 画图板"项目中,开发者仿照了Windows操作系统中的“画图”程序,提供了一个基本的绘图环境。下面将详细讨论相关的Java Swing知识点。 1. **组件(Components)**:在Swing中,JFrame是窗口的基础...
总的来说,"Java简易画图板"项目涵盖了Java GUI编程、图形绘制、事件处理以及基础的用户交互设计等多个方面,是学习和实践Java图形编程的一个良好实例。通过这个项目,开发者可以深入了解Java在图形应用中的应用,...
在Java编程语言中,实现一个简单的画图板是一项常见的任务,尤其对于初学者来说,它可以帮助理解图形用户界面(GUI)编程的基本概念。这个项目涵盖了Java AWT(Abstract Window Toolkit)或Swing库中的基本绘图功能...
在本项目中,“一个Java实现的画图板程序”是一个基于Java开发的图形用户界面应用,它允许用户进行基本的绘图操作,如绘制线条、形状、填充颜色等。这个程序通常会利用Java的AWT(Abstract Window Toolkit)或Swing...
在本文中,我们将深入探讨如何使用Java编程语言实现一个简易的画图板应用程序。这个程序允许用户绘制各种形状,如直线、圆、曲线、喷枪图案、直角矩形和圆角矩形,并且配备橡皮擦功能以擦除已绘制的内容。下面,我们...
在Java学习过程中,创建一个简单的画图板是一个经典的练习项目,它可以帮助我们深入理解图形用户界面(GUI)的构建和事件处理机制。本篇小结将聚焦于如何使用Java实现一个基本的画图板,同时提供相关的源码分析。 1...
【Java画图板系统】是一个基于Java编程语言开发的图形用户界面(GUI)应用程序,它允许用户在屏幕上绘制图形和图像。这个系统可能是为教育、设计或者简单的绘图练习而设计的,它提供了基本的绘图工具,如选择颜色、...
这个“java Swing练习画图板”项目是一个很好的实践平台,特别适合那些希望增强Java基础知识的初学者。通过模仿Windows 10自带的画图板,这个项目提供了一个实际应用Swing组件和功能的机会,同时涵盖了输入/输出(IO...
这个资源包“java+swing+画图板Java实用源码整理learns”显然是一个专注于使用Swing来创建画图板的应用示例。Swing是Java AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件和更现代的外观,适用于桌面应用...
《基于Java实现的简易画图板程序解析》 在计算机科学与信息技术领域,开发图形用户界面(GUI)应用程序是常见的任务之一。本篇文章将详细解析一个由Java编程语言实现的原创画图板软件,该软件具备基本的绘图功能,...
Java画图板程序是一种利用Java编程语言开发的图形用户界面应用,主要目的是提供一个平台让用户可以进行简单的绘图操作。这个程序的特点是功能全面且代码实现简洁,对于初学者来说,是一个很好的学习和实践项目。 ...
《Java画图板》是一款基于Java语言开发的简易图形绘制软件,旨在满足日常生活和学习中的基本绘图需求。软件由菜单栏、工具栏和画图区三大部分组成,提供了丰富的功能,使用户能够方便快捷地进行图形创作。 1. **...
在本项目"java大作业--画图板"中,我们主要关注的是利用Java编程语言实现一个功能丰富的图形用户界面(GUI)应用,它允许用户进行绘画操作,类似于电子画板。这个应用程序具备了一系列常见的绘图工具,如绘图、颜色...
【JAVA绘图板 画图小软件】 ...通过学习和分析这个"JAVA绘图板 画图小软件",初学者不仅可以掌握Swing的基本用法,还能深入理解Java图形绘制、事件处理和文件操作等相关知识,为后续开发更复杂的桌面应用打下坚实基础。
这个画图板能够提供多种基础图形绘制功能,包括直线、圆形、矩形、橡皮擦、喷枪、椭圆、圆角矩形、弧线以及多边形。在实现过程中,主要涉及到Swing或AWT这两个Java GUI(图形用户界面)库。下面我们将详细讨论这些...
【Java画图板源代码】是一个基于Java编程语言实现的简单图形编辑器,类似于Windows XP中的画图工具。这个项目为学习和理解Java图形用户界面(GUI)编程提供了很好的实践机会。下面我们将深入探讨其中涉及的主要知识...
Java课程设计中的“画图板”项目是一个典型的图形用户界面(GUI)应用,它允许用户在屏幕上绘制图形。这个项目通常被用作教学实践,帮助学生掌握Java编程基础,特别是Swing库和AWT库在构建图形用户界面时的应用。...