>,尝试单击其他两列时可能会阻止鼠标事件。但老实说,整个布局有点乱,应该重新考虑。@Zephyr很抱歉,我把行和列弄混了。该程序应该将任何数字系统(十六进制、二进制…)中的任何数字转换为十进制。 import javafx.application.Appl

>,尝试单击其他两列时可能会阻止鼠标事件。但老实说,整个布局有点乱,应该重新考虑。@Zephyr很抱歉,我把行和列弄混了。该程序应该将任何数字系统(十六进制、二进制…)中的任何数字转换为十进制。 import javafx.application.Appl,java,javafx,Java,Javafx,>,尝试单击其他两列时可能会阻止鼠标事件。但老实说,整个布局有点乱,应该重新考虑。@Zephyr很抱歉,我把行和列弄混了。该程序应该将任何数字系统(十六进制、二进制…)中的任何数字转换为十进制。 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import


>,尝试单击其他两列时可能会阻止鼠标事件。但老实说,整个布局有点乱,应该重新考虑。@Zephyr很抱歉,我把行和列弄混了。该程序应该将任何数字系统(十六进制、二进制…)中的任何数字转换为十进制。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.*;
import javafx.scene.text.Text;
import javafx.scene.text.TextAlignment;
import javafx.stage.Stage;

import java.math.BigInteger;

public class Main extends Application {

private ToggleGroup group;
private TextField txtfield;
private TextField output;
private int base = 10;

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) {
    BorderPane root = new BorderPane();
    StackPane title = new StackPane();
    Text t = new Text("Gib die Basis und die Zahl ein!");
    t.setTextAlignment(TextAlignment.CENTER);
    title.getChildren().add(t);
    FlowPane center = new FlowPane();
    center.setPrefSize(400, 300);
    HBox input = new HBox();
    VBox base1 = new VBox();
    VBox base2 = new VBox();
    VBox base3 = new VBox();
    input.setPrefSize(400, 100);
    base1.setPrefSize(50, 150);
    base2.setPrefSize(50, 150);
    base3.setPrefSize(50, 150);
    group = new ToggleGroup();
    for (int i = 2; i < 35; i++) {
        RadioButton b = new RadioButton(String.valueOf(i));
        if (i == 10) {
            b.setSelected(true);
        }
        b.setToggleGroup(group);
        b.setOnMouseClicked(mouseEvent -> {
            base = Integer.valueOf(b.getText());
            update();
        });

        if (i % 3 == 2) {
            base1.getChildren().add(b);
            b.setTranslateX(110);
        } else if (i % 3 == 0) {
            base2.getChildren().add(b);
            b.setTranslateX(120);
        } else {
            base3.getChildren().add(b);
            b.setTranslateX(130);
        }
    }
    output = new TextField();
    txtfield = new TextField();
    txtfield.setTranslateY(50);
    txtfield.setTranslateX(100);
    txtfield.setOnKeyTyped(keyEvent -> {
        update();
    });
    input.getChildren().add(txtfield);
    center.getChildren().add(input);
    center.getChildren().add(base1);
    center.getChildren().add(base2);
    center.getChildren().add(base3);
    root.setCenter(center);
    root.setTop(title);
    root.setBottom(output);
    primaryStage.setScene(new Scene(root, 400, 400));
    primaryStage.show();
}

private void update() {

    try {
        output.setText(String.valueOf(new BigInteger(txtfield.getText(), base)));
    } catch (NumberFormatException e) {
        output.setText("Nan");
    }
}
}
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class scratch_1 extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        VBox root = new VBox(10);
        root.setAlignment(Pos.CENTER);
        root.setPadding(new Insets(10));

        Label lblTitle = new Label("Gib die Basis und die Zahl ein!");
        root.getChildren().add(lblTitle);

        // The input TextField
        TextField txtInput = new TextField();
        root.getChildren().add(txtInput);

        // HBox to hold our three columns
        HBox hBoxSelections = new HBox(20);
        hBoxSelections.setAlignment(Pos.CENTER);

        // Use a GridPane for our RadioButton grid
        GridPane gridSelections = new GridPane();
        gridSelections.setAlignment(Pos.CENTER);
        gridSelections.setHgap(10);
        gridSelections.setVgap(5);

        // Our ToggleGroup to which all RadioButtons will belong
        ToggleGroup groupSelections = new ToggleGroup();

        // We need 11 rows of 3 RadioButtons, let's use a couple of for loops to populate the GridPane
        int counter = 2;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 3; j++) {
                RadioButton radioButton = new RadioButton("" + counter);
                radioButton.setToggleGroup(groupSelections);

                gridSelections.add(radioButton, j, i);
                counter++;
            }
        }

        // Let's add the GridPane to our root layout
        root.getChildren().add(gridSelections);

        primaryStage.setScene(new Scene(root, 400, 400));
        primaryStage.show();
    }
}