JavaFX之setBackground()设置组件背景颜色

来源:互联网 发布:平井一夫的微笑 知乎 编辑:程序博客网 时间:2024/06/04 19:08

Javafx设置背景颜色不如swing 方便,在对图形设置颜色时可以使用setFill方法

对标签(label),按钮(button)这些组件设置背景颜色时,就可以用到setBackground方法

废话不多少,先奉上我自己写的代码:

/** * 设置一个或多个组件的大小和背景颜色 * @param prefWidth用于设置组件的宽 * @param prefHeight 用于设置组件的长 * @param backgroundColor 用于设置的背景颜色 * @param controls 一个或多个组件,如果没有,那么该语句相当于不存在 */public void setCommpentSizeAndColor(double prefWidth,double prefHeight,Color backgroundColor, Control...controls){setCommpentSize(prefWidth,prefHeight,controls);setCommpentColor(backgroundColor,controls);}/** * 设置一个或多个组件的大小 * @param prefWidth 用于设置组件的宽 * @param prefHeight 用于设置组件的长 * @param controls 一个或多个组件,如果没有,那么该语句相当于不存在 */public void setCommpentSize(double prefWidth,double prefHeight, Control...controls){for(int i = 0; i < controls.length; i++){if(controls[i] instanceof Label){controls[i] = (Label)controls[i];((Label) controls[i]).setAlignment(Pos.CENTER);//设置字体居中}else if(controls[i] instanceof Button)controls[i] = (Button)controls[i];controls[i].setPrefSize(prefWidth, prefHeight);}}/** * 设置一个或多个组件的背景颜色 * @param backgroundColor 用于设置的背景颜色 * @param controls 一个或多个组件,如果没有,那么该语句相当于不存在 */public void setCommpentColor(Color backgroundColor, Control...controls){for(int i = 0; i < controls.length; i++){controls[i].setBackground(new Background(new BackgroundFill(backgroundColor,null,null)));}}
解释一下:

用点操作符,点出setBackground方法,系统会提示你,它的参数为Background类型,但是我们并不知道Background是什么东西,不知道就试呗,Background点,

发现点不出什么东西来,那就new吧,然后你会发现new出来没有参数的构造方法报错了,于是看报的什么错,一看就知道,Background有一个带有BackgroundFill参数

的构造方法,于是我们大胆地又new一个BackgroundFill,同样的它也会报错,然后我们看一下提示信息,他会提示你添加相关参数,其中第一个参数就是背景颜色,

后面两个为null的,本人还没怎么看懂,但没多大影响,如果大家有兴趣,可以去理解一下


Control...controls中间的3个点表示传入任意个Control类型的参数

Control是大多数组件的父类

原创粉丝点击