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

Java 使用单独的方法在JFrame中绘制线,java,awt,Java,Awt,我试图创建一个方法,当调用该方法时,它会创建一个JFrame。在创建上述JFrame的同一个类中,我有另一个名为line的方法。调用此方法时,应根据输入的坐标在JFrame上绘制一条线。JFrame加载正确,但line方法不起作用。i、 e.即使line方法具有有效坐标,JFrame上也不会显示任何内容 import java.awt.*; import javax.swing.JFrame; public class Window{ JFrame f = new JFrame("Pat

我试图创建一个方法,当调用该方法时,它会创建一个JFrame。在创建上述JFrame的同一个类中,我有另一个名为line的方法。调用此方法时,应根据输入的坐标在JFrame上绘制一条线。JFrame加载正确,但line方法不起作用。i、 e.即使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()。这不是你做定制绘画的方式

自定义绘制通过覆盖
JPanel
paintComponent()
方法完成,然后将面板添加到框架中

有关更多信息和工作示例,请阅读上Swing教程的部分

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