我正在尝试创建一个方法,在调用时会创建一个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);
}
}
由于我还是初学者,我不知道发生了什么。任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
不要使用getGraphics()。这不是你自定义绘画的方式。
自定义绘画是通过覆盖paintComponent()
的{{1}}方法完成的,然后将面板添加到框架中。
阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。
从教程中的工作示例开始,然后对其进行自定义。