📄 makestrokeframe.java
字号:
package makestroke;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.geom.*;/** * <p>Title: Make Stroke Demo</p> * <p>Description: This is a Make Stroke Demo</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: D6-125</p> * @author liujun * @version 1.0 */public class MakeStrokeFrame extends JFrame { JPanel contentPane; BorderLayout borderLayout1 = new BorderLayout(); //Construct the frame public MakeStrokeFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { //setIconImage(Toolkit.getDefaultToolkit().createImage(MakeStrokeFrame.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); this.setTitle("Make Stroke Frame Demo"); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public void paint(Graphics g) { /**@todo: Override this java.awt.Container method*/ super.paint( g); float width=10f;//设置线段宽度 float miterLimit = 10.0F; float[] dashPattern = { 5F, 5F, 8F, 5F, 10F, 5F, 12F, 5F, 15F, 5F, 18F, 5F, 21F,5F, 23F, 5F, 26F, 5F }; float dashPhase = 0; Graphics2D g2 = (Graphics2D)g;//使用Java 2D //以虚线模式画线 g2.setStroke(new BasicStroke(width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, miterLimit, dashPattern, dashPhase)); g2.draw(new Line2D.Float(60.0f,60.0f,200.0f,60.0f)); g2.drawString("虚线模式",210f,60f); //画一条直线,笔画直接结尾 g2.setStroke( new BasicStroke(width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); g2.draw(new Line2D.Float(60.0f,100.0f,200.0f,100.0f)); g2.drawString("实线模式,笔画直接结尾(butt cap)",210f,100f); //画一条直线,末尾加半圆 g2.setStroke( new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); g2.draw(new Line2D.Float(60.0f,140.0f,200.0f,140.0f)); g2.drawString("实线模式,笔画末尾加半圆(round cap)",210f,140f); //画一条直线,末尾加半个正方形 g2.setStroke( new BasicStroke(width, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL)); g2.draw(new Line2D.Float(60.0f,180.0f,200.0f,180.0f)); g2.drawString("实线模式,笔画末尾加半个正方形(square cap)",210f,180f); //构造三个连接路径 GeneralPath path1 = new GeneralPath(); GeneralPath path2 = new GeneralPath(); GeneralPath path3 = new GeneralPath(); //使用夹角平分方式 path1.moveTo(60.0f,220.0f); path1.lineTo(100.0f,220.0f); path1.lineTo(110.0f,240.0f); g2.setStroke( new BasicStroke(width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); g2.draw(path1); g2.drawString("Bevel Join 连接类型",60f,280f); //使用加“长钉”方式连接两个线段 path2.moveTo(180.0f,220.0f); path2.lineTo(220.0f,220.0f); path2.lineTo(230.0f,240.0f); g2.setStroke( new BasicStroke(width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)); g2.draw(path2); g2.drawString("Miter Join 连接类型",180f,280f); //使用圆帽连接方式 path3.moveTo(300.0f,220.0f); path3.lineTo(340.0f,220.0f); path3.lineTo(350.0f,240.0f); g2.setStroke( new BasicStroke(width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); g2.draw(path3); g2.drawString("Round Join 连接类型",300f,280f); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -