Java源码-简单的绘图板
来源:互联网 发布:淘宝店刷钻是真的吗 编辑:程序博客网 时间:2024/05/22 04:52
看源码好处多多,边看边改效果更佳,可以了解每个细枝末节的来龙去脉。
通过修改参数,画笔的粗度已被我改的比较高了,落笔格外给力。
遗留问题:看似简短的画图小程序,还没有完全理解代码为什么这么写,留待日后再察。
代码如下:
//Fig. 12.34: PaintPanel.java//Adapter class used to implement event handlers.import java.awt.Point;import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionAdapter;import java.util.ArrayList;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JLabel;import java.awt.BorderLayout;public class PaintPanel extends JPanel {// list Point referencesprivate final ArrayList<Point> points = new ArrayList<>(); // set up GUI and register mouse event handlerpublic PaintPanel(){ // handle frame mouse motion event addMouseMotionListener( new MouseMotionAdapter() // anonymous inner class { // store drag coordinates and repaint @Override public void mouseDragged(MouseEvent event) { points.add(event.getPoint()); repaint(); // repaint JFrame } } ); }// draw ovals in a 4-by-4 bounding box at specified locations on window@Overridepublic void paintComponent(Graphics g){ super.paintComponent(g); // clears drawing area // draw all for (Point point : points) g.fillOval(point.x, point.y, 50, 50);} public static void main(String[] args){ // create JFrame JFrame application = new JFrame("A simple paint program"); PaintPanel paintPanel = new PaintPanel(); application.add(paintPanel, BorderLayout.CENTER); // create a label and place it in SOUTH of BorderLayout application.add(new JLabel("Drag the mouse to draw"), BorderLayout.SOUTH); application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); application.setSize(400, 200); application.setVisible(true); } } // end class PaintPanel
运行截屏:(用鼠标描了十来次,总算描了一个比较满意的,送给Java)
0 0
- Java源码-简单的绘图板
- wpf简单的绘图板
- Android基础之简单的绘图板
- 非常值得学习的java 绘图板源代码
- 非常值得学习的java 绘图板源代码
- Windows Phone开发(21):做一个简单的绘图板
- Windows Phone开发(21):做一个简单的绘图板 .
- Java简易绘图板
- 绘图板
- Swift 全功能的绘图板开发
- Swift 全功能的绘图板开发
- Swift 全功能的绘图板开发
- Swift 全功能的绘图板开发
- [Java学习日志]图形界面开发练习——绘图板的实现
- 初学java制作了一个绘图板
- iOS中关于绘图板的小demo
- 大二上课程设计作品(简单绘图板+桌面计算器+万年历)
- 一个简单的java计算器源码分析
- MySQL读写分离介绍
- 【例题】【拓扑排序】NKOJ 3731 wjj的排列序列
- android开发仿ios的UIScrollView
- IllegalStateException异常处理
- (23)HTML标签详解之<frameset><frame><iframe><noframes>
- Java源码-简单的绘图板
- HDU1846之巴什博弈
- vue.js的增删改查
- 趣图展现程序员职业生涯的11个阶段
- GC算法与内存回收
- Android 热补丁技术的探索与简单实战----Qzone方案
- 大图加载+软引用+LruCache
- 【Codeforces自我陶醉水题篇~】(差17C code....)
- 算法+数据结构的本质