使用单独的方法在 JFrame 中绘制线条

Drawing Lines in a JFrame using a separate method

我正在尝试创建一种方法,该方法在被调用时会创建一个 JFrame。在创建所述 JFrame 的同一个 class 中,我有另一个名为 line 的方法。调用此方法时,应该根据输入的坐标在 JFrame 上绘制一条线。 JFrame 加载正确,但 line 方法不起作用。即,即使 line 方法具有有效坐标,JFrame 上也不会显示任何内容。

import java.awt.*;
import javax.swing.JFrame;

public class Window{

  JFrame f = new JFrame("Pathway");

  public Window(int width, int height){
    f.setSize(width,height);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  public void line(int x1,int y1,int x2,int y2){
                Graphics g = f.getGraphics();
                g.setColor(Color.BLACK);
                g.drawLine(x1,y1,x2,y2);
  }
}

由于我还是初学者,所以我不知道发生了什么。任何帮助将不胜感激。谢谢!

不要使用 getGraphics()。那不是你做定制绘画的方式。

自定义绘画是通过重写 JPanelpaintComponent() 方法完成的,然后将面板添加到框架中。

阅读有关 Custom Painting 的 Swing 教程部分,了解更多信息和工作示例。

从教程中的工作示例开始,然后对其进行自定义。