Javafx 如何使用单选按钮的切换组显示圆形的颜色
在考试前,我正在解决一些家庭作业问题,需要一些说明,比如如何设置圆圈的颜色,以便在屏幕上显示用户从切换组中选择的内容。我收到一条错误消息,代码用于显示圆圈的大小,但当我添加颜色时,单击“创建”按钮时,图片中不会显示颜色。我收到的错误消息是“线程中的异常”JavaFX应用程序线程“java.lang.IllegalArgumentException:无效的颜色规范”,并且可以;我不能在网上找到解决问题的办法 我尝试了下面的代码,但根本不起作用Javafx 如何使用单选按钮的切换组显示圆形的颜色,javafx,Javafx,在考试前,我正在解决一些家庭作业问题,需要一些说明,比如如何设置圆圈的颜色,以便在屏幕上显示用户从切换组中选择的内容。我收到一条错误消息,代码用于显示圆圈的大小,但当我添加颜色时,单击“创建”按钮时,图片中不会显示颜色。我收到的错误消息是“线程中的异常”JavaFX应用程序线程“java.lang.IllegalArgumentException:无效的颜色规范”,并且可以;我不能在网上找到解决问题的办法 我尝试了下面的代码,但根本不起作用 HBox circleColour = new
HBox circleColour = new HBox();
circleColour.setSpacing(20);
Label task7 = new Label("What colour do you want the circle: ");
RadioButton brown = new RadioButton("Brown ");
RadioButton cyan = new RadioButton("Cyan ");
RadioButton grey = new RadioButton("Grey ");
ToggleGroup fillColour = new ToggleGroup();
brown.setToggleGroup(fillColour);
cyan.setToggleGroup(fillColour);
grey.setToggleGroup(fillColour);
HBox newC = new HBox();
layout.setRight(newC);
click.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
//radius
double newRadius = Double.parseDouble(circleSize.getText());
circle = new Circle(newRadius);
//This does not display
//fill colour
RadioButton selectedRB =
(RadioButton)fillColour.getSelectedToggle();
String colour = selectedRB.getText();
System.out.println(colour);
Color fc = Color.valueOf(colour);
circle.setFill(fc);
HBox circleColour=新的HBox();
环形色标(20);
Label task7=新标签(“您想要什么颜色的圆圈:”);
RadioButton棕色=新的RadioButton(“棕色”);
RadioButton青色=新的RadioButton(“青色”);
RadioButton灰色=新RadioButton(“灰色”);
ToggleGroup FillColor=新的ToggleGroup();
棕色。设置切换组(填充颜色);
青色组(填充色);
灰色。设置切换组(填充颜色);
HBox newC=新的HBox();
布局。设置权限(newC);
click.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent e){
//半径
double newRadius=double.parseDouble(circleSize.getText());
圆=新圆(新半径);
//这不显示
//填充颜色
单选按钮selectedRB=
(单选按钮)FillColor.getSelectedToggle();
String color=selectedRB.getText();
系统输出打印LN(彩色);
颜色fc=颜色。值(颜色);
圆圈。设置填充(fc);
在以下情况下引发非法argumentException
:
[…]该值指定了不受支持的颜色名称或非法的十六进制值
您正在使用单选按钮的文本来确定所需的颜色。您使用的文本是受支持的颜色名称,除了一个小问题:每个文本末尾都有一个空格。简单的解决方法是更改:
“棕色”
→ <代码>“棕色”
“青色”
→ <代码>“青色”“灰色”
→ <代码>“灰色”Color.valueOf
,那么另一个选项是将每个单选按钮
与颜色
关联。至少有两种方法可以做到这一点:
地图
(或者地图
,如果您愿意)
最好使用其中一个选项。当或如果您将应用程序国际化时,您将在使用
单选按钮的文本时遇到问题。在以下情况下引发IllegalArgumentException
:
[…]该值指定了不受支持的颜色名称或非法的十六进制值
您正在使用单选按钮的文本来确定所需的颜色。您使用的文本是受支持的颜色名称,除了一个小问题:每个文本末尾都有一个空格。简单的解决方法是更改:
“棕色”
→ <代码>“棕色”
“青色”
→ <代码>“青色”
“灰色”
→ <代码>“灰色”Color.valueOf
,那么另一个选项是将每个单选按钮
与颜色
关联。至少有两种方法可以做到这一点:
地图
(或者地图
,如果您愿意)
使用这些选项中的一个更可取。当或如果您将应用程序国际化时,您将在使用
单选按钮的文本时遇到问题。我完全同意slaw,尽管他没有添加另一个选项,并且需要更少的代码更改和使用它返回字符串的一个副本,前导和尾随空格被省略
RadioButton brown = new RadioButton("Brown ");
Color color = Color.valueOf(brown.getText().trim());
我完全同意slaw的观点,尽管他没有添加另一个选项,并且需要更少的代码更改和使用它,即“返回字符串的副本,省略前导和尾随空格。”如下所示
RadioButton brown = new RadioButton("Brown ");
Color color = Color.valueOf(brown.getText().trim());
RadioButton brown = new RadioButton("Brown ");
Color color = Color.valueOf(brown.getText().trim());