Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 奇怪的jpanel涂料_Java_Jpanel_Paint - Fatal编程技术网

Java 奇怪的jpanel涂料

Java 奇怪的jpanel涂料,java,jpanel,paint,Java,Jpanel,Paint,这是我的班级 public class Grid extends JPanel{ public Grid(Dimension dim){ this.dim = dim; step = 0.02; this.setSize(dim); this.setLocation(0, 0); } @Override public void paint(Graphics g){ for(int i

这是我的班级

public class Grid extends JPanel{
    public Grid(Dimension dim){
        this.dim = dim;
        step = 0.02;
        this.setSize(dim);
        this.setLocation(0, 0);
    }

    @Override
    public void paint(Graphics g){
        for(int i=-1; i<this.getHeight(); i+=this.getHeight()*step){
            g.drawLine(0, i, this.getWidth(), i);
        }
        for(int i=-1; i<this.getWidth(); i+=this.getWidth()*step){
            g.drawLine(i, 0, i, this.getHeight());
        }
    }
}
默认情况下,网格是隐藏的(
grid.hide();
),因此我的jFrame如下所示:

其中“蓝色”区域是parentPanel,“橙色”区域是带有按钮的JPanel。问题是,当我按下网格按钮时,会得到以下结果:

网格线在哪里是可以的,但我也得到了这个橙色的盒子,我不知道为什么会在那里


有什么想法吗?

我必须在构造函数中添加以下行

this.setOpaque(false);

我必须在构造函数中添加以下行

this.setOpaque(false);

上面的这些按钮是什么?您确定没有将按钮也添加到面板中吗?我认为您发布的代码太少,无法提供帮助。它们是我程序中的随机按钮,是的,我没有向面板添加任何按钮(忘了提到我还可以添加其他JPanel,可以用鼠标在面板上移动。如果我将其中一个移到奇怪的橙色框上,它会像被擦除一样消失)可能需要在
public void paint(图形g)中调用
super.paint()
?当我使用
super.paint()
时,它将背景涂成白色,不透明,如果我使用
此.setBackground(新颜色(0,0,0,0))出现相同的奇怪框您确定第二个按钮始终存在,但只有在使用透明背景时才可见吗?另外,我认为它比从设计角度调用super.paint()更好。顶部的这些按钮是什么?您确定没有将按钮也添加到面板中吗?我认为您发布的代码太少,无法提供帮助。它们是我程序中的随机按钮,是的,我没有向面板添加任何按钮(忘了提到我还可以添加其他JPanel,可以用鼠标在面板上移动。如果我将其中一个移到奇怪的橙色框上,它会像被擦除一样消失)可能需要在
public void paint(图形g)中调用
super.paint()
?当我使用
super.paint()
时,它将背景涂成白色,不透明,如果我使用
此.setBackground(新颜色(0,0,0,0))出现相同的奇怪框您确定第二个按钮始终存在,但只有在使用透明背景时才可见吗?另外,我认为它比从设计角度调用super.paint()更好。