私はちょうどjavaFXを開始しました。私はいくつかのオプションでButtonMenuを作っています。私はメニューから何を選択するのかを知りたい。ここ メニューボタンから選択項目を取得する方法javaFX?
は、これまでの私のコードです - >コントローラクラス>
@FXML
private JFXTextField locF;
private File file;
private Set<String> extensions;
@FXML
private MenuButton format;
public void openFileBrowser(ActionEvent event){
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
chooser.setInitialDirectory(new File("c:/"));
File selectedDirectory = chooser.showDialog(Main.stage);
locF.setText(selectedDirectory+"");
extensions=getFileTypes(selectedDirectory.listFiles());//just gets all different types format present in the folder and later add it to menu
Iterator<String> it=extensions.iterator();
while (it.hasNext()){
format.getItems().addAll(new MenuItem(it.next()));
}
}
private Set<String> getFileTypes(File[] list){
Set<String> ext=new HashSet<>();
for (File i:
list) {
if (i.isFile()){
ext.add(i.getName().substring(i.getName().lastIndexOf(".")));
}
}
return ext;
}
}
FXML - >
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXTextField?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.MenuButton?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<top>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="295.0" minWidth="10.0" prefWidth="57.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="295.0" minWidth="10.0" prefWidth="93.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="564.0" minWidth="10.0" prefWidth="311.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="575.0" minWidth="0.0" prefWidth="77.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="575.0" minWidth="10.0" prefWidth="69.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<JFXTextField fx:id="locF" focusColor="#47c64d" unFocusColor="#821dda" GridPane.columnIndex="2" GridPane.rowIndex="1" />
<JFXButton fx:id="browse" mnemonicParsing="false" onAction="#openFileBrowser" prefHeight="78.0" prefWidth="123.0" ripplerFill="#2de823" text="Browse" GridPane.columnIndex="3" GridPane.rowIndex="1" />
<Label fx:id="locL" prefHeight="48.0" prefWidth="143.0" text="Enter Location" GridPane.columnIndex="1" GridPane.rowIndex="1" />
</children>
</GridPane>
</top>
<right>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="61.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="139.0" minWidth="10.0" prefWidth="139.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="98.0" minHeight="0.0" prefHeight="17.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="227.0" minHeight="10.0" prefHeight="227.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<MenuButton fx:id="format" mnemonicParsing="false" prefHeight="29.0" prefWidth="109.0" text="Format" GridPane.columnIndex="1">
</MenuButton>
</children>
</GridPane>
</right>
</BorderPane>
私はオラクルに行きましたが、情報が見つかりませんでした。どんな助けもありがとうございます。
私はあなたのコードを実行しました。 「フォーマット」ドロップダウンメニューで選択するオプションはありません。 – Sedrick
@SedrickJeffersonメニューで選択を追加する方法は? – thvardhan
直面している問題に取り組むだけの非常に簡単な例を探してください。 – Sedrick