繁体   English   中英

使用super.paint()不会显示任何内容

[英]Using super.paint() won't show anything

我知道这可能很简单,但这给我带来了麻烦。 当我使用paint()时,它什么也不显示,如果我使用paintComponent(),则显示错误(找不到符号)。 我究竟做错了什么?

这是使用paint()的示例:

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

public class Test extends JFrame {

    public Test() {
        this.setPreferredSize(new Dimension(400, 400));
        this.pack();
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);

        // define the position
        int locX = 200;
        int locY = 200;

        // draw a line (there is now drawPoint..)
        g.drawLine(locX, locY, locX, locY); 
    }

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

注释说这是一个不错的简单代码,但是我什么也看不到,因为它什么也没显示。

[已解决]对于所有回答的人,谢谢。 大声笑我兄弟,我真的没注意到有一个小点。 棒极了,谢谢。

您的代码不是推荐的做事方式,但除此之外,它还是可以工作的。

您没有设置要绘画的颜色,而是绘制了一个点。 您可能只是没有看到它(我不得不看两次)。 它在200、200处绘制一个黑色像素。

我敢打赌,问题在于您只画了一个点,所以很难看到。 您的代码对我来说很好。

但是,您应该扩展JPanel,而不是JFrame。 推荐阅读: http : //docs.oracle.com/javase/tutorial/uiswing/painting/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM