Java 文本域中的模糊位置
当我在我的应用程序中创建文本字段,然后在其中出现模糊的地方 示例:1.输入开头有一个模糊:Java 文本域中的模糊位置,java,javafx-8,Java,Javafx 8,当我在我的应用程序中创建文本字段,然后在其中出现模糊的地方 示例:1.输入开头有一个模糊: 轻触几下“空间模糊”后消失: 最后一个字符显示失真: 然后,模糊再次出现,整个场都会出现这种情况。 我不明白为什么会发生这种情况,hox会解决它 如果需要,片段代码: private void inputSaveName() { Stage nameStage = new Stage(); nameStage.initModality(Modality.WINDOW_MODAL);
private void inputSaveName() {
Stage nameStage = new Stage();
nameStage.initModality(Modality.WINDOW_MODAL);
nameStage.initOwner(saveStage);
nameStage.initStyle(StageStyle.UNDECORATED);
nameStage.initStyle(StageStyle.TRANSPARENT);
BorderPane saveBorder = new BorderPane();
saveBorder.setStyle("-fx-background-color:saddlebrown;" +"-fx-border-width:5;" + "-fx-border-radius:16;" + "-fx-font-family: Cambria;" + "-fx-border-color:olive");
Scene nameScene = new Scene (saveBorder,300,120);
nameScene.setFill(Color.TRANSPARENT);
Rectangle rect = new Rectangle(300,120);
rect.setArcHeight(40.0);
rect.setArcWidth(40.0);
saveBorder.setClip(rect);
Button acceptNameButton = new Button("Accept");
Button cancelNameButton = new Button("Cancel");
acceptNameButton.setStyle("-fx-background-color: darkkhaki;" + "-fx-background-insets: 0 2 2 0;" + "-fx-padding: 8;" + "-fx-font-size:15;" + "-fx-text-alignment:
center");
cancelNameButton.setStyle("-fx-background-color: darkkhaki;" + "-fx-background-insets: 0 0 2 2;" + "-fx-padding: 8;" + "-fx-font-size:15;" + "-fx-text-alignment:
center");
cancelNameButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
nameStage.close();
}
});
TextField nameField = new TextField();
nameField.setPromptText("Write save name");
nameField.setFont(new Font(18));
HBox buttonBox = new HBox();
buttonBox.setAlignment(Pos.CENTER);
buttonBox.setHgrow(acceptNameButton, Priority.ALWAYS);
buttonBox.setHgrow(cancelNameButton, Priority.ALWAYS);
acceptNameButton.setMaxWidth(130);
cancelNameButton.setMaxWidth(130);
buttonBox.getChildren().addAll(acceptNameButton,cancelNameButton);
saveBorder.setBottom(buttonBox);
saveBorder.setCenter(nameField);
nameStage.setScene(nameScene);
nameStage.show();
}
private void inputSaveName(){
阶段名称阶段=新阶段();
nameStage.initmodula(modula.WINDOW_modula);
nameStage.initOwner(saveStage);
nameStage.initStyle(StageStyle.UNDECORATED);
initStyle(StageStyle.TRANSPARENT);
BorderPane saveBorder=新建BorderPane();
saveBorder.setStyle(“-fx背景颜色:马鞍色;“+”-fx边框宽度:5;“+”-fx边框半径:16;“+”-fx字体系列:Cambria;“+”-fx边框颜色:橄榄色”);
场景名称场景=新场景(saveBorder,300120);
namesene.setFill(颜色.透明);
矩形rect=新矩形(300120);
直视视觉(40.0);
直线设置弧宽(40.0);
saveBorder.setClip(rect);
按钮接受名称按钮=新按钮(“接受”);
按钮取消名称按钮=新按钮(“取消”);
acceptNameButton.setStyle(“-fx背景颜色:深色;“+”-fx背景插入:0 2 0;“+”-fx填充:8;“+”-fx字体大小:15;“+”-fx文本对齐:
中心);
cancelNameButton.setStyle(“-fx背景颜色:深色;“+”-fx背景插入:0 0 2 2;“+”-fx填充:8;“+”-fx字体大小:15;“+”-fx文本对齐:
中心);
cancelNameButton.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent ae){
nameStage.close();
}
});
TextField nameField=新的TextField();
nameField.setPrompText(“写入保存名称”);
nameField.setFont(新字体(18));
HBox按钮框=新的HBox();
按钮盒设置对齐(位置中心);
设置行(acceptNameButton,Priority.ALWAYS);
buttonBox.setHgrow(cancelNameButton,Priority.ALWAYS);
acceptNameButton.setMaxWidth(130);
cancelNameButton.setMaxWidth(130);
buttonBox.getChildren().addAll(acceptNameButton、cancelNameButton);
saveBorder.setBottom(按钮盒);
saveBorder.setCenter(名称字段);
nameStage.setScene(namestene);
nameStage.show();
}
我只是在本地尝试您的代码:
public class test2 extends Application {
@Override
public void start(Stage stage) throws Exception {
Stage nameStage = new Stage();
nameStage.initModality(Modality.WINDOW_MODAL);
// nameStage.initOwner(saveStage);
nameStage.initStyle(StageStyle.UNDECORATED);
nameStage.initStyle(StageStyle.TRANSPARENT);
BorderPane saveBorder = new BorderPane();
saveBorder.setStyle("-fx-background-color:saddlebrown;" + "-fx-border-width:5;" + "-fx-border-radius:16;" + "-fx-font-family: Cambria;" + "-fx-border-color:olive");
Scene nameScene = new Scene(saveBorder, 300, 120);
nameScene.setFill(Color.TRANSPARENT);
Rectangle rect = new Rectangle(300, 120);
rect.setArcHeight(40.0);
rect.setArcWidth(40.0);
saveBorder.setClip(rect);
Button acceptNameButton = new Button("Accept");
Button cancelNameButton = new Button("Cancel");
acceptNameButton.setStyle("-fx-background-color: darkkhaki;" +
"-fx-background-insets: 0 2 2 0;" + "-fx-padding: 8;" + "-fx-font-size:15;" +
"-fx-text-alignment: center");
cancelNameButton.setStyle("-fx-background-color: darkkhaki;" +
"-fx-background-insets: 0 0 2 2;" + "-fx-padding: 8;" +
"-fx-font-size:15;" + "-fx-text-alignment: center");
cancelNameButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent ae) {
nameStage.close();
}
});
TextField nameField = new TextField();
nameField.setPromptText("Write save name");
nameField.setFont(new Font(18));
HBox buttonBox = new HBox();
buttonBox.setAlignment(Pos.CENTER);
buttonBox.setHgrow(acceptNameButton, Priority.ALWAYS);
buttonBox.setHgrow(cancelNameButton, Priority.ALWAYS);
acceptNameButton.setMaxWidth(130);
cancelNameButton.setMaxWidth(130);
buttonBox.getChildren().addAll(acceptNameButton, cancelNameButton);
saveBorder.setBottom(buttonBox);
saveBorder.setCenter(nameField);
nameStage.setScene(nameScene);
nameStage.show();
}
public static void main(String[] args) {
launch(args); }
}
公共类test2扩展了应用程序{
@凌驾
public void start(Stage)引发异常{
阶段名称阶段=新阶段();
nameStage.initmodula(modula.WINDOW_modula);
//nameStage.initOwner(saveStage);
nameStage.initStyle(StageStyle.UNDECORATED);
initStyle(StageStyle.TRANSPARENT);
BorderPane saveBorder=新建BorderPane();
saveBorder.setStyle(“-fx背景颜色:马鞍色;“+”-fx边框宽度:5;“+”-fx边框半径:16;“+”-fx字体系列:Cambria;“+”-fx边框颜色:橄榄色”);
场景名称场景=新场景(saveBorder,300120);
namesene.setFill(颜色.透明);
矩形rect=新矩形(300120);
直视视觉(40.0);
直线设置弧宽(40.0);
saveBorder.setClip(rect);
按钮接受名称按钮=新按钮(“接受”);
按钮取消名称按钮=新按钮(“取消”);
acceptNameButton.setStyle(“-fx背景色:黑色+
“-fx背景插图:0 2 0;“+”-fx填充:8;“+”-fx字体大小:15;”+
“-fx文本对齐:居中”);
cancelNameButton.setStyle(“-fx背景色:暗黑+
“-fx背景插入:0 0 2 2;”+“-fx填充:8;”+
“-fx字体大小:15;“+”-fx文本对齐方式:中间”);
cancelNameButton.setOnAction(新的EventHandler
也许你的gpu或者javafx有问题
我正在使用JDK14.0.1、JavaFX14和gradle,也许你需要升级到最新版本:)这两幅图像之间没有区别,除了插入符号位置,也许你说的是焦点蓝边框?模糊真的出现在第一个屏幕截图中。:)我很抱歉看到他这么差。我在TextField中添加了另一个带有图形伪影的屏幕截图。我现在可以看到区别,我不确定,但我认为这与w有关我真的没有主意我让我的朋友在这台电脑上启动这个应用程序,一个有这个问题,另一个也没有。也许这个问题真的存在于计算机软件中为什么你不将scenebuilder与fxml一起使用?我最近开始学习JavaFX,为了更好地理解它尽管如此,我一开始还是决定用这种方式工作。也许有点奇怪,但对我来说,这真的更方便