java - 在java中画线

标签 java swing awt

我试过用这段代码画一条线,效果很好。

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

public class New extends JFrame {
    public New() {
        setSize(960, 960);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public void paint(Graphics g) {
        g.drawLine(0, 480, 960, 480);
    }

    public static void main(String[] args) {
        New n = new New();
    }
}

我也尝试了下面的代码来画一条线,但没有线显示在框架中。

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

public class Test {
    public Test() {
        JFrame f = new JFrame("Test");
        f.setSize(960, 960);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

    public void paint(Graphics g) {
        g.drawLine(0, 480, 960, 480);
    }

    public static void main(String []args) {
        Test t = new Test();
    }
}

我认为这两个片段之间没有区别。我错了吗?有什么区别吗?

最佳答案

JFrame 是在构造函数中声明的,这意味着它将在 Test 创建后被删除。此外,paint 方法不属于 JFrame,而是属于 Test。所以它不会被调用。

关于java - 在java中画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017643/

相关文章:

Java - 来自按钮的响应

java - 如何在 Spring MVC 中进行模型部分?

java - 在另一个 Maven 作业中运行 Maven 作业

java - var arg 和 array 之间的区别

Java:使用多个线程同时在 JPanel 上绘制

java - swing中的页面管理

java - 在Java中的JFrame上显示鼠标坐标

java - 使用 log4j2 时日志文件为空

java - 如何使用Pageable Interface避免打印范围1-9999

java - 主线程卡住所有其他线程,包括 java gui 线程