>,尝试单击其他两列时可能会阻止鼠标事件。但老实说,整个布局有点乱,应该重新考虑。@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();
}
}