这是我的班级
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看起来像这样:
&#34; blue&#34; area是parentPanel和&#34; orange&#34;区域是带按钮的JPanel。问题是,当我按下网格按钮时,我得到以下结果:
网格线没问题,但我也得到了这个橙色的盒子,我不知道为什么会这样。
有什么想法吗?
答案 0 :(得分:0)
我必须在构造函数
中添加以下行this.setOpaque(false);