Итак, режу зубы на JavaFX, пока все идет хорошо.
Однако все текстовые поля имеют строку, проходящую через них, 10 пикселей или около того сверху.
Не только в моем приложении, но и в приложении SceneBuilder.
Заметьте, я не использую явный CSS, я не знаю, что использует SceneBuilder. Экран снят с SceneBuilder, мои экраны выглядят одинаково.
Итак, это что-то фундаментальное.
java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
В Mac OS 10.9.5
Просто интересно, если кто-то еще это видел и имеет предложение.
Изменить: я загрузил образцы, это явно что-то связано с темой Модены. Каспийская тема выглядит просто замечательно. Ниже приведен снимок экрана из раздела Modene.jar TextFields. Интересно, что TextArea
испытывает аналогичную проблему, хотя и не так универсально, как TextField
.
Дополнительные добавления:
Люди продолжают настаивать на этом, так что вот оно. Я по существу просто придерживался этого: https://docs.oracle.com/javafx/2/get_started/form.htm и использовал проект приложения NetBeans 8.0.2 JavaFX по умолчанию. Просто вырезать и вставить его с сайта.
public class Fxlinetest extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("JavaFX Welcome");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
Text scenetitle = new Text("Welcome");
scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
grid.add(scenetitle, 0, 0, 2, 1);
Label userName = new Label("User Name:");
grid.add(userName, 0, 1);
TextField userTextField = new TextField();
grid.add(userTextField, 1, 1);
Label pw = new Label("Password:");
grid.add(pw, 0, 2);
PasswordField pwBox = new PasswordField();
grid.add(pwBox, 1, 2);
Button btn = new Button("Sign in");
HBox hbBtn = new HBox(10);
hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
hbBtn.getChildren().add(btn);
grid.add(hbBtn, 1, 4);
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
Вот скриншот из представления ThreeDOM от ScenicView 8.6, обратите внимание на строку:
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
Здесь образец экрана с использованием каспийской темы через:
System.setProperty("javafx.userAgentStylesheetUrl", "caspian");