这是我的课
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());
}
}
}
(我跳过了类变量的定义)
我像这样在另一个 JPanel 中添加此类
Grid grid = new Grid(dim);
parentPanel.add(grid);
默认情况下,网格是隐藏的( grid.hide();
),所以我的 jFrame 看起来像这样:
其中“蓝色”区域是parentPanel,“橙色”区域是带有按钮的JPanel。问题是,当我按下网格按钮时,我得到以下结果:
网格线没问题,但我也得到了这个橙色框,我不知道为什么会在那里。
有什么想法吗?
最佳答案
我必须在构造函数中添加以下行
this.setOpaque(false);
关于java - 奇怪的j面板漆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34287126/