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

时间:2017-05-06 22:39:09

标签: java awt

我正在尝试创建一个方法,在调用时会创建一个JFrame。在创建所述JFrame的同一个类中,我有另一个名为line的方法。调用此方法时,应根据输入的坐标在JFrame上绘制一条线。 JFrame正确加载,但行方法不起作用。即使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);
  }
}

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

1 个答案:

答案 0 :(得分:1)

不要使用getGraphics()。这不是你自定义绘画的方式。

自定义绘画是通过覆盖paintComponent()的{​​{1}}方法完成的,然后将面板添加到框架中。

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

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

相关问题