java中setStroke_Java Path.setStrokeType方法代码示例

import javafx.scene.shape.Path; //导入方法依赖的package包/类

private void initGraphics() {

// Set initial size

if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 ||

Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) {

if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) {

gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight());

} else {

gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);

}

}

barBackground = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.696, PREFERRED_WIDTH * 0.275, PREFERRED_WIDTH * 0.275, angleRange * 0.5 + 90, -angleRange);

barBackground.setType(ArcType.OPEN);

barBackground.setStroke(gauge.getBarBackgroundColor());

barBackground.setStrokeWidth(PREFERRED_WIDTH * 0.02819549 * 2);

barBackground.setStrokeLineCap(StrokeLineCap.BUTT);

barBackground.setFill(null);

sectionLayer = new Pane();

sectionLayer.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY)));

bar = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.696, PREFERRED_WIDTH * 0.275, PREFERRED_WIDTH * 0.275, angleRange * 0.5 + 90, 0);

bar.setType(ArcType.OPEN);

bar.setStroke(gauge.getBarColor());

bar.setStrokeWidth(PREFERRED_WIDTH * 0.02819549 * 2);

bar.setStrokeLineCap(StrokeLineCap.BUTT);

bar.setFill(null);

//bar.setMouseTransparent(sectionsAlwaysVisible ? true : false);

bar.setVisible(!sectionsAlwaysVisible);

needleRotate = new Rotate((gauge.getValue() - oldValue - minValue) * angleStep);

needleMoveTo1 = new MoveTo();

needleCubicCurveTo2 = new CubicCurveTo();

needleCubicCurveTo3 = new CubicCurveTo();

needleCubicCurveTo4 = new CubicCurveTo();

needleCubicCurveTo5 = new CubicCurveTo();

needleCubicCurveTo6 = new CubicCurveTo();

needleCubicCurveTo7 = new CubicCurveTo();

needleClosePath8 = new ClosePath();

needle = new Path(needleMoveTo1, needleCubicCurveTo2, needleCubicCurveTo3, needleCubicCurveTo4, needleCubicCurveTo5, needleCubicCurveTo6, needleCubicCurveTo7, needleClosePath8);

needle.setFillRule(FillRule.EVEN_ODD);

needle.getTransforms().setAll(needleRotate);

needle.setFill(gauge.getNeedleColor());

needle.setPickOnBounds(false);

needle.setStrokeType(StrokeType.INSIDE);

needle.setStrokeWidth(1);

needle.setStroke(gauge.getBackgroundPaint());

needleTooltip = new Tooltip(String.format(locale, formatString, gauge.getValue()));

needleTooltip.setTextAlignment(TextAlignment.CENTER);

Tooltip.install(needle, needleTooltip);

minValueText = new Text(String.format(locale, "%." + gauge.getTickLabelDecimals() + "f", gauge.getMinValue()));

minValueText.setFill(gauge.getTitleColor());

Helper.enableNode(minValueText, gauge.getTickLabelsVisible());

maxValueText = new Text(String.format(locale, "%." + gauge.getTickLabelDecimals() + "f", gauge.getMaxValue()));

maxValueText.setFill(gauge.getTitleColor());

Helper.enableNode(maxValueText, gauge.getTickLabelsVisible());

titleText = new Text(gauge.getTitle());

titleText.setFill(gauge.getTitleColor());

Helper.enableNode(titleText, !gauge.getTitle().isEmpty());

if (!sections.isEmpty() && sectionsVisible && !sectionsAlwaysVisible) {

barTooltip = new Tooltip();

barTooltip.setTextAlignment(TextAlignment.CENTER);

Tooltip.install(bar, barTooltip);

}

pane = new Pane(barBackground, sectionLayer, bar, needle, minValueText, maxValueText, titleText);

pane.setBorder(new Border(new BorderStroke(gauge.getBorderPaint(), BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(gauge.getBorderWidth()))));

pane.setBackground(new Background(new BackgroundFill(gauge.getBackgroundPaint(), CornerRadii.EMPTY, Insets.EMPTY)));

getChildren().setAll(pane);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 画轨迹可以用 Java 的 Graphics2D 类来实现。以下是一种基本的实现方法: 1. 创建一个 JPanel 类,并重写其 paintComponent 方法。 2. 在 paintComponent 方法,创建一个 Graphics2D 对象,并设置线条的颜色和粗细。 3. 使用 Graphics2D 对象的 drawLine 方法画出轨迹。 以下是示例代码: ```java import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JPanel; public class DrawPanel extends JPanel { private static final long serialVersionUID = 1L; private ArrayList<Point> points = new ArrayList<Point>(); public DrawPanel() { setPreferredSize(new Dimension(500, 500)); setBackground(Color.WHITE); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setStroke(new BasicStroke(3f)); g2d.setColor(Color.BLACK); for (int i = 0; i < points.size() - 1; i++) { Point p1 = points.get(i); Point p2 = points.get(i + 1); g2d.drawLine(p1.x, p1.y, p2.x, p2.y); } } public void addPoint(Point p) { points.add(p); repaint(); } public static void main(String[] args) { JFrame frame = new JFrame("Drawing Panel"); DrawPanel panel = new DrawPanel(); frame.add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); panel.addPoint(new Point(100, 100)); panel.addPoint(new Point(200, 200)); panel.addPoint(new Point(300, 150)); } } ``` 在这个例子,我们创建了一个 DrawPanel 类,它继承了 JPanel 类,并重写了其 paintComponent 方法。我们在 paintComponent 方法使用 Graphics2D 对象画出了轨迹。我们还创建了一个 ArrayList 对象,用于存储轨迹上的点,然后通过 addPoint 方法将点添加到列表。最后,在 main 方法,我们创建了一个 JFrame 对象,并将 DrawPanel 对象添加到其。然后,我们使用 addPoint 方法添加了三个点,这些点将被画成一条轨迹。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值