import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.*; import javafx.scene.layout.AnchorPane; import javafx.scene.text.Font; import javafx.stage.*; import javafx.scene.control.*; public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { Button b1=new Button("账号登录"); b1.setPrefWidth(100); b1.setPrefHeight(20); b1.setStyle( "-fx-background-color: #B22222;"+ "-fx-text-fill: #FFFAFA;" ); Label label=new Label("账号 :"); Label label2=new Label("密码 :"); label.setFont(Font.font(13)); label2.setFont(Font.font(13)); TextField textField1=new TextField(); textField1.setPrefHeight(25); textField1.setPrefWidth(200); textField1.setFont(Font.font(12)); Tooltip tip=new Tooltip("请输入12位学号"); textField1.setPromptText("请输入12位学号"); tip.setFont(Font.font(10)); textField1.setTooltip(tip); PasswordField passwordField=new PasswordField(); passwordField.setPrefHeight(25); passwordField.setPrefWidth(200); Tooltip tooltip2=new Tooltip("请输入八位密码"); passwordField.setPromptText("请输入八位密码"); textField1.textProperty().addListener((new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (newValue.length()>12){ textField1.setText(oldValue); } } })); passwordField.textProperty().addListener((new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { if (newValue.length()>8){ passwordField.setText(oldValue); } } })); /*ImageView img = new ImageView(); Image image=new Image(getClass().getResourceAsStream("/image/iocn.jpg")); img.setImage(image);*/ passwordField.setTooltip(tooltip2); AnchorPane anchorPane=new AnchorPane(textField1); anchorPane.getChildren().add(passwordField); anchorPane.getChildren().add(b1); anchorPane.getChildren().addAll(label2,label); anchorPane.setTopAnchor(label,150.0); anchorPane.setLeftAnchor(label,140.0); anchorPane.setTopAnchor(label2,180.0); anchorPane.setLeftAnchor(label2,140.0); anchorPane.setTopAnchor(textField1,150.0); anchorPane.setLeftAnchor(textField1,180.0); anchorPane.setTopAnchor(passwordField,180.0); anchorPane.setLeftAnchor(passwordField,180.0); anchorPane.setTopAnchor(b1,220.0); anchorPane.setLeftAnchor(b1,220.0); Scene scene=new Scene(anchorPane); primaryStage.setHeight(500); primaryStage.setWidth(550); primaryStage.setScene(scene); primaryStage.show(); } }
时间: 2023-04-10 07:04:40 浏览: 268
这段代码是一个JavaFX的应用程序,用于创建一个窗口和一个按钮。其中,import语句用于导入JavaFX的相关类库,Application是JavaFX应用程序的基类,main方法是程序的入口,start方法是JavaFX应用程序的主要方法,用于创建和显示GUI界面。在start方法中,创建了一个Button对象,并设置了它的文本、宽度、高度和样式。其中,样式使用了CSS语法,用于设置按钮的背景颜色。整个程序的作用是创建一个简单的GUI界面,用于账号登录。
相关问题
javafx WebView接受所有网站证书
您可以使用JavaFX的WebView组件来加载网站并接受所有证书。下面是一个简单的示例代码:
```java
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewAcceptAllCertificatesExample extends Application {
@Override
public void start(Stage primaryStage) {
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
// 设置信任所有证书
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue, Worker.State newValue) {
if (newValue == Worker.State.READY) {
webEngine.setCreatePopupHandler(handler -> {
WebView popupView = new WebView();
WebEngine popupEngine = popupView.getEngine();
// 设置信任所有证书
popupEngine.setCreatePopupHandler(innerHandler -> {
WebView innerPopupView = new WebView();
WebEngine innerPopupEngine = innerPopupView.getEngine();
innerPopupEngine.setCertificateCheck((message, sslException) -> {
return WebEngine.Listener.CertificateCheck.valueOf(true);
});
return innerPopupView;
});
return popupView;
});
webEngine.setCertificateCheck((message, sslException) -> {
return WebEngine.Listener.CertificateCheck.valueOf(true);
});
}
}
});
webEngine.load("https://example.com");
Scene scene = new Scene(webView, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
这个例子中,我们使用了WebView和WebEngine来加载网站并在加载过程中接受所有证书。通过设置`webEngine.setCertificateCheck()`方法返回`WebEngine.Listener.CertificateCheck.valueOf(true)`,我们告诉WebView接受所有证书。
请注意,接受所有证书可能会导致安全风险,请谨慎使用。
JavaFx的下拉框监听事件
JavaFX的下拉框(ComboBox)监听事件可以通过添加一个ChangeListener来实现。
可以按照以下步骤来添加一个下拉框监听事件:
1. 获取ComboBox对象
```java
ComboBox comboBox = new ComboBox();
```
2. 添加ChangeListener
```java
comboBox.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
// 处理事件
System.out.println("Selected item: " + newValue);
}
});
```
在ChangeListener的changed方法中,可以处理下拉框值改变的事件。其中,observable是一个ObservableValue对象,它包含了下拉框的当前值,oldValue是下拉框改变前的值,newValue是下拉框改变后的值。
比如上述代码中,输出了下拉框选中的值。
完整示例代码:
```java
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ComboBoxDemo extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
ComboBox<String> comboBox = new ComboBox<>();
comboBox.getItems().addAll("Option 1", "Option 2", "Option 3");
comboBox.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
System.out.println("Selected item: " + newValue);
}
});
StackPane root = new StackPane(comboBox);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
阅读全文
相关推荐













