Java JFrame部分透明

Java JFrame部分透明,java,swing,jframe,Java,Swing,Jframe,我正在分析图表中最短方式和最简单方式之间的差异。为了简化,我创建了一个非常简单的JFrame,用于可视化图形和方式。如图所示,背景似乎部分透明。我不知道原因 (很抱歉,但我还不能上传图片) 绘画方法有问题吗?这个问题只发生在我的私人笔记本电脑上。我正在使用java 1.7.0_45 我没有对背景色或透明度进行任何更改。绘制方法仅绘制字符串、椭圆和线 public Drucker(Graph graph) { super(); this.graph = graph; set

我正在分析图表中最短方式和最简单方式之间的差异。为了简化,我创建了一个非常简单的JFrame,用于可视化图形和方式。如图所示,背景似乎部分透明。我不知道原因

(很抱歉,但我还不能上传图片)

绘画方法有问题吗?这个问题只发生在我的私人笔记本电脑上。我正在使用java 1.7.0_45

我没有对背景色或透明度进行任何更改。绘制方法仅绘制字符串、椭圆和线

public Drucker(Graph graph) {
    super();
    this.graph = graph;
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}


@Override
public void paint(Graphics g) {

    for (int i = 0; i < this.graph.getKanten().size(); i++) {
        xxx
    }

    for (int i = 0; i < this.graph.getKnoten().size(); i++) {
        xxx
    }       

    this.paintDistance(g);
}
公共德鲁克(图形){ 超级(); this.graph=图形; setDefaultCloseOperation(关闭时退出); } @凌驾 公共空间涂料(图g){ for(int i=0;i 我的java vesion有问题吗? 我想有人能帮我

感谢并问候

我认为您需要使用您的
paint()
方法

这仅仅意味着写下:

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

    // your code goes here
}
当您超级构造方法时,这基本上意味着您将绘制父对象,然后绘制字符串


这只是一种预感。让我知道这是否真的解决了您的问题。

这是一个好的预感,我还担心OP首先会覆盖
paint
,但也可能覆盖顶级容器的
paint
。您是对的。这就是问题所在。也许我无意中删除了这行。谢谢,祝您度过愉快的一天。使用
super()
表示法调用超级构造函数不同于使用
super.foo()
表示法调用超级方法。后者与在对象上构造无关。