发现一个有意思的应用,于是就动手写一写(在国内是已经被遗弃的框架,书写比较麻烦,优缺点以后再补吧)
效果图如下:
代码如下(主要是JavaFX的UI组件应用):
package sample;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("JavaFX sample Application");
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(25,25,25,25));
// Image
Label Avatar = new Label("Avatar:");
Avatar.setFont(Font.font(16));
gridPane.add(Avatar,0,0,2,1);
final ImageView imv = new ImageView();
imv.setFitWidth(120);
imv.setFitHeight(120);
final Image image2 = new Image("https://z3.ax1x.com/2021/06/18/Rpa5gx.jpg");
imv.setImage(image2);
gridPane.add(imv, 3, 0, 4, 1);
// Label
Label Name = new Label("Name:");
Name.setFont(Font.font(16));
gridPane.add(Name,0,1,2,1);
Label NameValue = new Label("橘子");
NameValue.setFont(Font.font(16));
gridPane.add(NameValue,3,1,10,1);
// Text Field
Label Account = new Label("Account:");
Account.setFont(Font.font(16));
gridPane.add(Account,0,2,2,1);
TextField accountField = new TextField("123456");
gridPane.add(accountField, 3, 2, 10, 1);
// Password
Label Password = new Label("Password:");
Password.setFont(Font.font(16));
gridPane.add(Password,0,3,2,1);
final PasswordField passwordField = new PasswordField();
gridPane.add(passwordField, 3, 3, 10, 1);
// Radio button
Label Sex = new Label("Sex:");
Sex.setFont(Font.font(16));
gridPane.add(Sex,0,4,2,1);
ToggleGroup group = new ToggleGroup();
RadioButton button1 = new RadioButton("Girl");
button1.setToggleGroup(group);
button1.setSelected(true);
RadioButton button2 = new RadioButton("Boy");
button2.setToggleGroup(group);
gridPane.add(button1, 3, 4, 2, 1);
gridPane.add(button2, 5, 4, 2, 1);
// ToolTipText
final Tooltip tooltip = new Tooltip();
tooltip.setText("Your password must be\nat least 8 characters in length\n");
passwordField.setTooltip(tooltip);
// Button
Button btn = new Button("to Save");
btn.setMinSize(50, 30);
HBox hbBtn = new HBox();
hbBtn.getChildren().add(btn);
gridPane.add(hbBtn, 4, 8,4,1);
btn.setOnAction(event -> {
Text Success = new Text("save Success!");
Success.setFill(Color.RED);
gridPane.add(Success, 8, 8,4,1);
});
Scene scene = new Scene(gridPane,460,380);
primaryStage.setScene(scene);
primaryStage.show();
}
}