我有一块六边形板,每块都是一个更大的矩形。
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());
答案 0 :(得分:0)
通过添加此代码修复:
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setBorderPainted(false);
对于遇到此问题的其他人,通过将对象内六边形以外的任何内容更改为透明来修复它。