栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java的Path2D创建钢笔工具时遇到的问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java的Path2D创建钢笔工具时遇到的问题

问题似乎出在将笔划形状分配回形状上。如果您避免这样做,请使用该应用程序。保持响应。可见

import java.awt.BasicStroke;import java.awt.event.MouseAdapter;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Point;import java.awt.Shape;import java.awt.event.MouseEvent;import java.awt.geom.Path2D;import javax.swing.*;public class PenDemoPanel extends JPanel {    private Point start;    private Point stop;    private Shape shape;    public PenDemoPanel() {        setBackground(Color.white);        setPreferredSize(new Dimension(600, 600));        PathListener listener = new PathListener();        addMouseListener(listener);        addMouseMotionListener(listener);    }    public void paintComponent(Graphics gc) {        super.paintComponent(gc);        Graphics2D g2 = (Graphics2D) gc;        if (start != null && stop != null) { BasicStroke stroke = new BasicStroke(1); Shape strokedShape = stroke.createStrokedShape(shape); g2.draw(strokedShape); g2.fill(strokedShape);        }    }    private class PathListener        extends MouseAdapter {        public void mousePressed(MouseEvent event) { start = event.getPoint(); Path2D path = new Path2D.Double(); shape = path;        }        public void mouseDragged(MouseEvent event) { stop = event.getPoint(); Path2D path = (Path2D) shape; path.moveTo(start.x, start.y); path.lineTo(stop.x, stop.y); shape = path; start = stop; repaint();        }        public void mouseReleased(MouseEvent event) { Path2D path = (Path2D) shape; try {     path.closePath(); } catch(Exception ingore) { } shape = path; repaint();        }    }    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() { public void run() {     PenDemoPanel shapes = new PenDemoPanel();     Jframe frame = new Jframe("PenDemo");     frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);     frame.getContentPane().add(shapes);     frame.pack();     frame.setVisible(true); }        });    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号