扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可以引入外部css文件,然后在里面通过.button的类型选择器设置;
创新互联是一家专注于成都网站设计、网站建设与策划设计,沈阳网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:沈阳等地区。沈阳做网站价格咨询:13518219792
也可以直接代码里button.setStyle("-fx-background-color:
red")来修改;
可以啊; 你只需要了解颜色的基本原理,代码很容易就写出来了;屏幕显示的颜色就RGB三种颜色加上透明度构成的;
#FF0000 红色
#00FF00绿色
#0000FF蓝色
#0000FFCC蓝色+透明度
java参考代码如下
import java.awt.Color;
public class ColorDemo {
public static void main(String[] args) {
// java.awt.Color类 或者使用自定义的颜色类, 只要包含r,g,b,a四个属性就可以了
Color c1 = new Color(50, 0, 210, 204);
System.out.println(awtColorToWeb(c1));
}
public static String awtColorToWeb(Color c1) {
StringBuilder builder = new StringBuilder();
//builder.append("0x");//16进制的标识
builder.append("#");//web16进制颜色开头的字符
builder.append(getString(c1.getRed()));//红色转16进制
builder.append(getString(c1.getGreen()));//绿色转16进制
builder.append(getString(c1.getBlue()));//蓝色转16进制
builder.append(getString(c1.getAlpha()));//透明度转16进制
return builder.toString();
}
public static String getString(int value){
String str=Integer.toHexString(value);//把单色转成16进制
return str.length()==1?"0"+str:str;
//用2个16进制的数字个字符来表示;所以长度不足就补0
//比如 "6"--"06"
}
}
如果你使用javafx的Color类, 那会让你觉得很简便 . 因为Color toString() 打印出来就是16进制的颜色.
javafx里颜色参考如下
import javafx.scene.paint.Color;
public class ColorDemo {
public static void main(String[] args) {
//使用的javafx的Color
Color c1 = Color.rgb(50, 0, 210, 0.8);
System.out.println(c1);//直接就是输出16进制的颜色
Color c2=Color.valueOf("#3200d2cc");//web颜色轻松转16进制
System.out.println(c2);
//web颜色 #AABBCCDD--可简写成--ABCD
Color c3=Color.valueOf("567c");//web颜色简写也支持
System.out.println(c3);
}
}
拓展了解: JavaFX是现代化的图形界面框架, 支持动画, 多媒体,3D ,WebView 甚至支持HTML5,事件绑定进制 配合lambda表达式, 代码简洁功能强大;
以绿色为例:
-fx-background:#00ff00ff这样就可以改成绿色,但是按钮不再有立体效果和动态效果。
高级一点的方法是-fx-base:#00ff00ff,这样可以让按钮的形状不变,且保留动态效果。
可以在fxml中直接改,也可以在java程序中调用setStyle添加。
颜色的定义为一个'#'后面是红、绿、蓝、Alpha值。Alpha可以省略,省略时相当于FF。
SceneBuilder不会提示-fx-base属性,但这个属性其实是存在的
GridPane通常用于布局:第一列上的只读标签的输入表单和第二列上的输入字段。
GridPane可以在行,列或单元格级别指定约束。
例如,我们可以设置包含输入文本字段的第二列,以在窗口调整大小时调整大小。
示例
以下代码演示使用GridPane布局的简单表单应用程序。它有以下布局。
+------------------------+
| [label ] [ field ] |
| [label ] [ field ] |
| [ button ] |
+------------------------+
Java
完整的代码实现如下所示 -
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 380, 150, Color.WHITE);
// @ w WW .yII b a I .c O m
GridPane gridpane = new GridPane();
gridpane.setPadding(new Insets(5));
gridpane.setHgap(5);
gridpane.setVgap(5);
ColumnConstraints column1 = new ColumnConstraints(100);
ColumnConstraints column2 = new ColumnConstraints(50, 150, 300);
column2.setHgrow(Priority.ALWAYS);
gridpane.getColumnConstraints().addAll(column1, column2);
Label fNameLbl = new Label("First Name");
TextField fNameFld = new TextField();
Label lNameLbl = new Label("Last Name");
TextField lNameFld = new TextField();
Button saveButt = new Button("Save");
// First name label
GridPane.setHalignment(fNameLbl, HPos.RIGHT);
gridpane.add(fNameLbl, 0, 0);
// Last name label
GridPane.setHalignment(lNameLbl, HPos.RIGHT);
gridpane.add(lNameLbl, 0, 1);
// First name field
GridPane.setHalignment(fNameFld, HPos.LEFT);
gridpane.add(fNameFld, 1, 0);
// Last name field
GridPane.setHalignment(lNameFld, HPos.LEFT);
gridpane.add(lNameFld, 1, 1);
// Save button
GridPane.setHalignment(saveButt, HPos.RIGHT);
gridpane.add(saveButt, 1, 2);
root.setCenter(gridpane);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Java
上面的代码生成以下结果。
示例2
以下是一个实现登录窗口的代码 -
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX Welcome");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
Label userName = new Label("User Name:");
grid.add(userName, 0, 1);
TextField userTextField = new TextField();
grid.add(userTextField, 1, 1);
Label pw = new Label("Password:");
grid.add(pw, 0, 2);
PasswordField pwBox = new PasswordField();
grid.add(pwBox, 1, 2);
Button btn = new Button("Sign in");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btn);
grid.add(hbBtn, 1, 4);
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
btn.setOnAction(new EventHandlerActionEvent() {
@Override
public void handle(ActionEvent e) {
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Sign in button pressed");
}
});
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流