小编car*_*gmz的帖子

为什么宽度为1的fillRect和drawLine不一样

我正在开发一个在 JFrame 上使用 Canvas 的 java gui 应用程序。我尝试在 Jframe 上绘制细矩形,并注意到它们并不总是显示相同的宽度。

这是我写的测试类的结果。左侧使用fillRect()绘制,宽度为1,右侧使用drawLine绘制。

帆布

这是我的测试类的代码。

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferStrategy;

public class test {
    public static void main(String[]args){
        new test();
    }

    public test(){
        JWindow frame = new JWindow();
        frame.setSize(500,500);
        frame.setLocation(200,200);

        Canvas c = new Canvas();
        frame.add(c);

        frame.setVisible(true);

        new Thread(() -> {
            while(true) {
                BufferStrategy bs = c.getBufferStrategy();

                if (bs == null) {
                    c.createBufferStrategy(2);
                    bs = c.getBufferStrategy();
                }

                Graphics g = bs.getDrawGraphics();
                Graphics2D g2 = (Graphics2D) g;

                g2.setColor(Color.black);

                for(int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

java swing canvas

0
推荐指数
1
解决办法
140
查看次数

标签 统计

canvas ×1

java ×1

swing ×1