【发布时间】:2015-11-21 10:04:35
【问题描述】:
我正在寻找一种方法来更改 JMenuBar 上的组件图形
我有以下JMenuBar。
package GUIMain;
import javax.swing.*;
import java.awt.*;
public class MyMenuBar extends JMenuBar
{
int fontMetrics;
FontMetrics fM;
JLabel lblSmartSize = new JLabel("", SwingConstants.CENTER);
JCheckBox chkbtnSmartSize = new JCheckBox();
SortsGui sG;
public MyMenuBar(SortsGui sG)
{
this.sG = sG;
setBorderPainted(true);
makePopUpMenu();
}
void makePopUpMenu()
{
add(Box.createHorizontalGlue());
fM = lblSmartSize.getFontMetrics(lblSmartSize.getFont());
fontMetrics = fM.stringWidth("Enable Smart Resizing?");
lblSmartSize.setMinimumSize(new Dimension(fontMetrics+10,25));
lblSmartSize.setPreferredSize(new Dimension(fontMetrics+10,25));
lblSmartSize.setMaximumSize(new Dimension(fontMetrics+10,25));
add(lblSmartSize);
chkbtnSmartSize.setBackground(lblSmartSize.getBackground());
add(chkbtnSmartSize);
}
}
这会创建一个看起来像这样的JMenuBar(对于放大的屏幕截图表示歉意)
如您所见,JMenuBar 上有一个JLabel 和一个JCheckBox。如何更改JCheckBox 的背景,使其周围没有与JMenuBar 的标准外观不同的正方形。
我已经尝试了以下代码,但到目前为止都没有成功
chkbtnSmartSize.setBackground(this.getBackground());
(在不同的尝试中)
chkbtnSmartSize.setBackground(lblSmartSize.getBackground());
如有任何帮助,将不胜感激
谢谢,
丹
【问题讨论】:
标签: java graphics jmenuitem jmenubar