java如何画虚线

Python042

java如何画虚线,第1张

可以使用 Graphics2D 和 BasicStroke 画虚线,如下:

import java.awt.BasicStroke

import java.awt.Color

import java.awt.Graphics

import java.awt.Graphics2D

import javax.swing.JFrame

public class App extends JFrame {

public App() {

this.setSize(400, 400)

this.setLocationRelativeTo(null)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

@Override

public void paint(Graphics g) {

super.paint(g)

Graphics2D g2d = (Graphics2D) g

g2d.setColor(Color.RED)

BasicStroke stroke = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 10.0f, new float[] { 10, 10 }, 0)

g2d.setStroke(stroke)

g2d.drawLine(50, 100, 300, 100)

}

public static void main(String[] argv) {

new App().setVisible(true)

}

}

运行结果

java swing中是可以绘制虚线的,主要是使用paint画笔工具绘制,如下代码:

package com.qiu.lin.he

import java.awt.BasicStroke

import java.awt.Color

import java.awt.Dimension

import java.awt.Graphics

import java.awt.Graphics2D

import java.awt.Stroke

import javax.swing.JFrame

import javax.swing.JPanel

public class Ceshi {

public static void main(String[] args) {

JPanel p = new JPanel() {

//使用画笔绘制虚线

public void paint(Graphics gr) {

Graphics2D g = (Graphics2D) gr

g.setBackground(Color.black)

g.clearRect(0, 0, getWidth(), getHeight())

Stroke dash = new BasicStroke(2.5f, BasicStroke.CAP_BUTT,

BasicStroke.JOIN_ROUND, 3.5f, new float[] { 15, 10, },

0f)

g.setStroke(dash)

g.setColor(Color.yellow)

g.drawRect(20, 20, getWidth() - 40, getHeight() - 40)

g.dispose()

}

}

//新建一个窗口

JFrame f = new JFrame("Dash Test")

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

f.setContentPane(p)

p.setPreferredSize(new Dimension(400, 300))

f.pack()

f.setLocationRelativeTo(null)

f.setVisible(true)

}

}

运行结果如下: