将图形添加到 JRadioButtonMenuItem
Adding figure to JRadioButtonMenuItem
我必须创建一个简单的文本编辑器,它有带有特定选项的菜单栏。
其中之一是通过在 JRadioButtonMenuItem
上选择它来更改字体颜色,它必须看起来与图片中描述的教授完全一样。
我的问题是我不知道如何在文本和单选按钮之间创建和添加那些小圆圈。
不知何故,我设法通过使用图标界面解决了我的问题。这是我的代码的一小部分和最终结果。我仍然愿意接受任何类型的提示和改进我的代码以使其更好并通过正确编码来学习。
这是我的圈子class:
public class Circle implements Icon {
Color color;
public Circle(Color color){
this.color = color;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.setColor(color);
g.drawOval(x, y, getIconWidth(), getIconHeight());
g.fillOval(x, y, getIconWidth(), getIconHeight());
}
@Override
public int getIconWidth() {
return 7;
}
@Override
public int getIconHeight() {
return 7;
}
}
以及我显示菜单栏的 GUI 方法:
private void myMenuBar(
...
JMenu optionsForeground,
JRadioButtonMenuItem optionsForeBlue
) {
...
optionsForegroundBlue.setForeground(color);
optionsForegroundBlue.setIcon(new Circle(color));
optionsForeground.add(optionsForeBlue);
options.add(optionsForeground);
options.add(optionsBackground);
options.add(optionsFontSize);
menuBar.add(file);
menuBar.add(edit);
menuBar.add(options);
}
result
我必须创建一个简单的文本编辑器,它有带有特定选项的菜单栏。
其中之一是通过在 JRadioButtonMenuItem
上选择它来更改字体颜色,它必须看起来与图片中描述的教授完全一样。
我的问题是我不知道如何在文本和单选按钮之间创建和添加那些小圆圈。
不知何故,我设法通过使用图标界面解决了我的问题。这是我的代码的一小部分和最终结果。我仍然愿意接受任何类型的提示和改进我的代码以使其更好并通过正确编码来学习。
这是我的圈子class:
public class Circle implements Icon {
Color color;
public Circle(Color color){
this.color = color;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.setColor(color);
g.drawOval(x, y, getIconWidth(), getIconHeight());
g.fillOval(x, y, getIconWidth(), getIconHeight());
}
@Override
public int getIconWidth() {
return 7;
}
@Override
public int getIconHeight() {
return 7;
}
}
以及我显示菜单栏的 GUI 方法:
private void myMenuBar(
...
JMenu optionsForeground,
JRadioButtonMenuItem optionsForeBlue
) {
...
optionsForegroundBlue.setForeground(color);
optionsForegroundBlue.setIcon(new Circle(color));
optionsForeground.add(optionsForeBlue);
options.add(optionsForeground);
options.add(optionsBackground);
options.add(optionsFontSize);
menuBar.add(file);
menuBar.add(edit);
menuBar.add(options);
}
result