当我将鼠标悬停在按钮上时,它会将该按钮移到前面

时间:2016-06-12 17:36:32

标签: java swing object jbutton

我有一块六边形板,每块都是一个更大的矩形。

g.setColor(getBackground());
g.fillPolygon(hexagon);
g.setColor(getForeground());
g.drawPolygon(hexagon); 

每当每个六边形悬停在上面时,整个矩形被带到前面,导致边缘周围出现一个白色矩形,与其他六边形重叠。 http://prntscr.com/bfiixt< - 问题的例子。

如何让这个背景透明,以免我遇到问题,或者我怎么能阻止按钮被带到前面? 感谢。

FontMetrics fm = getFontMetrics(getFont());
        Rectangle viewR = getBounds();
        Rectangle iconR = new Rectangle();
        Rectangle textR = new Rectangle();

        SwingUtilities.layoutCompoundLabel(this,  fm, getText(), null, SwingUtilities.CENTER,
                SwingUtilities.CENTER, SwingUtilities.BOTTOM, SwingUtilities.CENTER, viewR, iconR, textR, 0);

        Point location = getLocation();
        g.drawString(getText(), textR.x - location.x, textR.y - location.y + fm.getAscent());

1 个答案:

答案 0 :(得分:0)

通过添加此代码修复:

btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setBorderPainted(false);

对于遇到此问题的其他人,通过将对象内六边形以外的任何内容更改为透明来修复它。