java - 奇怪的j面板漆

标签 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=-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 看起来像这样: enter image description here

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

网格线没问题,但我也得到了这个橙色框,我不知道为什么会在那里。

有什么想法吗?

最佳答案

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

this.setOpaque(false);

关于java - 奇怪的j面板漆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34287126/

相关文章:

java - 单击按钮时,如何将文本从警报对话框的 EditText 复制并粘贴到我的 Activity 的 EditText?

java - MyBatis 生成器 setDistinct(true)

java - 如何从 Pane 中删除这些空间?

android - 绘制透明区域未使用拖动监听器更新

java - 用 Java 类 Android 画一条线

java - 使用 JBOSS 将错误通过登录配置传递到表单错误页面

java - Java 中 getters setters 的错误选择示例

java - 如何在NetBeans生成的Jpanel中显示JfreeChart(ChartPanel)

java - JPanel 绘图故障

java - JTabbedPane 鼠标悬停绘制问题