我正在开发一个在 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)