有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java在使用Java创建行时产生错误。awt。图样

我的程序应该在Swing生成的面板上画一条简单的线。除drawLine命令产生的一个错误外,其他一切都正常。这是我的代码:

public static void main(String[] args) {
     JFrame f = new JFrame("Swing Paint Demo");
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.pack();
     f.setVisible(true);
     Graphics.drawLine(20,20,20,20);
   }
}

它会产生以下错误: 无法从类型图形对非静态方法drawLine(int,int,int,int)进行静态引用

有什么想法吗

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    您需要创建一个类来扩展您想要使用的swing小部件(在本例中,我假设是JPanel),并重写paintComponent()方法(它从几乎所有swing组件的父类继承而来-JComponent

    这样做可以:

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
    
        g.drawLine(20, 20, 20, 20);
    }
    

    编辑: 错误的原因是您试图直接使用Graphics类中的方法,而不是它的实例中的方法。Graphics类本身对swing应用程序一无所知,也不知道如何利用它。关于static的更好解释可以在here中找到。上面链接的swing教程也很值得一读