如何使按钮事件在按钮所在的文本域中写入输出 在hbox中,另一个在文本域中,因为我使用的是borderpane。 在动作事件结束时,按钮应在文本字段中写入选择的文件签名 这个问题的解决方案是什么?
public class Filrsystemencryption extends Application
{
private HBox getHBox()
{
HBox hbButtons = new HBox(15);
Button btnimport = new Button("import");
TextField textfieldd = new TextField ();
btnimport.setOnAction((event) ->
{
btnimport.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event) {
JButton open = new JButton();
JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new java.io.File("C:/Users/hannah/Desktop"));
fc.setDialogTitle("choose a file");
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fc.showOpenDialog(open) == JFileChooser.APPROVE_OPTION){
textfieldd.setText("file chosen");
}
}
});
Button btnDelete = new Button("Remove");
TextField textfield = new TextField ();
final ComboBox ComboBox = new ComboBox();
ComboBox.getItems().addAll(
"Encrypt",
"Decrypt"
);
Label label = new Label("password");
hbButtons.setSpacing(30);
hbButtons.setPadding(new Insets(10, 20, 30, 20));
hbButtons.getChildren().addAll(btnimport, btnDelete,
label,textfield,ComboBox);
return hbButtons ;
}
@Override
public void start(Stage primaryStage) {
BorderPane pane = new BorderPane();
pane.setTop(getHBox());
pane.setCenter(getHBoxx());
primaryStage.setTitle("File system encryption");
Scene scene = new Scene(pane, 600, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
private TextField getHBoxx() {
TextField textfieldd = new TextField ();
textfieldd.setPrefWidth(400);
textfieldd.setPrefHeight(200);
return textfieldd;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:1)
如果不真正需要在JavaFX中使用Swing类,则只会导致两个平台的主线程出现问题。最好将FileChooser
用于文件和目录(例如本例)DirectoryChooser
:
btnimport.setOnAction(evt -> {
DirectoryChooser dirChooser = new DirectoryChooser();
dirChooser.setInitialDirectory(new java.io.File("C:/Users/hannah/Desktop"));
dirChooser.setTitle("choose a file");
File choice = dirChooser.showDialog(btnimport.getScene().getWindow());
if (choice != null) {
// dialog not aborted
textfieldd.setText("file chosen");
}
});