JavaFx程序运行,但没有一个是空的,为什么?
所以我非常激动,我终于想出了这个程序,然后BAM启动它=空白屏幕。我在这里调用一个空白窗格,而其他信息没有填充?它是在填充,还是在屏幕外?出于某种原因,JavaFX真的让我着迷。如果有人有什么好地方可以去读的话。(我知道谷歌在工作,我找到的很多网站/地方都不适合我JavaFx程序运行,但没有一个是空的,为什么?,javafx,Javafx,所以我非常激动,我终于想出了这个程序,然后BAM启动它=空白屏幕。我在这里调用一个空白窗格,而其他信息没有填充?它是在填充,还是在屏幕外?出于某种原因,JavaFX真的让我着迷。如果有人有什么好地方可以去读的话。(我知道谷歌在工作,我找到的很多网站/地方都不适合我 package application; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.geometry.I
package application;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
Button button1, button2;
Label label1, label2;
Scene scene1, scene2;
BorderPane border1, border2;
Stage stage;
ComboBox<String> choseImage;
ImageView mga1 = new ImageView(new
Image(getClass().getResourceAsStream("/res/mga1.jpg")));
ImageView mga2 = new ImageView(new
Image(getClass().getResourceAsStream("/res/mga2.jpg")));
ImageView mga3 = new ImageView(new
Image(getClass().getResourceAsStream("/res/mga3.jpg")));
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("multi-factor key");
primaryStage.setScene(scene1);
//passPhrase
TextField passPhrase = new TextField();
button1 = new Button("submit");
button1.setOnAction(e -> handleButtonAction(e));
label1 =new Label ("Type in your PassPhrase");
border1=new BorderPane();
border1.getChildren().addAll(passPhrase, button1, label1);
border1.setPadding(new Insets(20));
BorderPane.setAlignment(passPhrase, Pos.CENTER);
BorderPane.setAlignment(button1, Pos.BOTTOM_CENTER);
BorderPane.setAlignment(label1, Pos.TOP_CENTER);
scene1 = new Scene(border1, 350, 500);
//combobox
choseImage = new ComboBox<>();
choseImage.setPromptText("Select a image.");
choseImage.getItems().addAll("mga1.png"
+ "mga2.jpg"
+ "mga3.png");
choseImage.setValue("mga1.png");
label2=new Label("Select a image");
System.out.println(choseImage.getValue());
String Selection = choseImage.getValue();
if (Selection == "mga1.png")
BorderPane.setAlignment(mga1, Pos.CENTER_RIGHT);
if (Selection == "mga2.jpg")
BorderPane.setAlignment(mga2, Pos.CENTER_RIGHT);
if (Selection == "mga3.jpg");
BorderPane.setAlignment(mga3, Pos.CENTER_RIGHT);
border2= new BorderPane();
border2.setPadding(new Insets(20));
border2.getChildren().addAll(choseImage,label2);
BorderPane.setAlignment(choseImage, Pos.CENTER);
BorderPane.setAlignment(label2, Pos.TOP_CENTER);
scene2 = new Scene(border2, 350, 500);
primaryStage.show();
}
private void handleButtonAction(ActionEvent event) {
if (event.getTarget()==button1)
stage.setScene(scene1);
}
}
包应用;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.geometry.Insets;
导入javafx.geometry.Pos;
导入javafx.scene.Node;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.ComboBox;
导入javafx.scene.control.Label;
导入javafx.scene.control.TextField;
导入javafx.scene.image.image;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.BorderPane;
导入javafx.scene.layout.VBox;
导入javafx.stage.stage;
公共类主扩展应用程序{
按钮1,按钮2;
标签label1、label2;
场景1、场景2;
边框窗格边框1、边框2;
阶段性;
组合框选择图像;
ImageView mga1=新的ImageView(新的
图像(getClass().getResourceAsStream(“/res/mga1.jpg”);
ImageView mga2=新的ImageView(新的
图像(getClass().getResourceAsStream(“/res/mga2.jpg”);
ImageView mga3=新的ImageView(新的
图像(getClass().getResourceAsStream(“/res/mga3.jpg”);
@凌驾
public void start(Stage primaryStage)引发异常{
primaryStage.setTitle(“多因子键”);
初生阶段:场景1;
//密码短语
TextField passPhrase=new TextField();
按钮1=新按钮(“提交”);
按钮1.设置动作(e->把手按钮动作(e));
label1=新标签(“输入您的密码”);
border1=新的BorderPane();
border1.getChildren().addAll(密码短语、按钮1、标签1);
边框1.设置填充(新插图(20));
BorderPane.setAlignment(密码短语,位置中心);
边框窗格。设置对齐(按钮1,位置底部\中间);
边框窗格。设置对齐(标签1,位置顶部\中间);
场景1=新场景(边界1350500);
//组合框
choseImage=新组合框();
setPrompText(“选择图像”);
choseImage.getItems().addAll(“mga1.png”
+“mga2.jpg”
+“mga3.png”);
choseImage.setValue(“mga1.png”);
label2=新标签(“选择图像”);
System.out.println(choseImage.getValue());
字符串选择=choseImage.getValue();
如果(选择==“mga1.png”)
边框窗格。设置对齐(mga1,位置中间\右侧);
如果(选择==“mga2.jpg”)
边框窗格。设置对齐(mga2,位置居中\右);
如果(选择==“mga3.jpg”);
边框窗格.设置对齐(mga3,位置居中\右);
border2=新的边框窗格();
边框2.设置填充(新插图(20));
border2.getChildren().addAll(choseImage,label2);
边框窗格。设置对齐(选择图像,位置中心);
边框窗格。设置对齐(标签2,位置顶部\中间);
场景2=新场景(边界2350500);
primaryStage.show();
}
私有无效把手按钮操作(ActionEvent事件){
if(event.getTarget()==button1)
第二阶段(场景1);
}
}
启动应用程序时,为什么屏幕是空白的,有很多问题
primaryStage.setScene(scene1);
场景为空,因此预期为空,您应该在实例化场景后设置场景。在您的示例中,应在以下行之后:scene1=新场景(border135500);
border1.getChildren().addAll(…)
这是错误的。边框窗格
有5个区域顶部底部左侧
右侧和中心
,因此您应该为这些区域设置一个节点,而不是将它们添加到边框窗格的子项中。这取决于您想“查看”的位置你应该把它们放在正确的位置。你应该像这样做:border1.setTop(…)
border1.setBottom(…)
等等当你启动应用程序时,为什么屏幕是空白的,有很多问题
primaryStage.setScene(scene1);
场景为空,因此预期为空,您应该在实例化场景后设置场景。在您的示例中,应在以下行之后:scene1=新场景(border135500);
border1.getChildren().addAll(…)
这是错误的。边框窗格
有5个区域顶部底部左侧
右侧和中心
,因此您应该为这些区域设置一个节点,而不是将它们添加到边框窗格的子项中。这取决于您想“查看”的位置你应该把它们放在正确的位置。你应该像这样做:border1.setTop(…)
border1.setBottom(…)
等等primaryStage.setScene(scene1);
scene1为空。primaryStage.setScene(scene1);
scene1为空。