如何删除文本字段中的杂色阴影

时间:2016-07-29 14:03:21

标签: javafx

我想删除TextField中的内部阴影。

enter image description here

这是css。

-fx-font-size: 12px;
-fx-font-family: "Segoe UI Semibold";
-fx-pref-width:250px;
-fx-pref-height:35px;
-fx-background-radius:0px;

2 个答案:

答案 0 :(得分:1)

尝试添加此行:

-fx-background-color: -fx-text-box-border, -fx-control-inner-background;

答案 1 :(得分:0)

问题在于它不是阴影。这是经过特殊装饰的背景。因此,使其透明或放置其值透明的键将很好地工作。

.text-field {
    -fx-text-box-border: transparent;
    -fx-background-color: transparent;
 }

 .text-field:focused {
     -fx-faint-focus-color: transparent; /*JavaFX 8*/
     -fx-focus-color: transparent; /*JavaFX 2.2*/
 }

上面的样式代码(style.css)将生成一个没有边框和背景的文本字段,并使其清晰可见。顺便说一句,将-fx-border-color或-fx-faint-color代替-fx-background-color完全透明,因为它们的值是透明的。

编辑:我现在添加一些示例代码。

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.control.TextField;
import javafx.scene.paint.Color;
import javafx.scene.layout.Pane;

public class TextFieldDemo extends Application {

    public void start(Stage primaryStage) {
        TextField textField = new TextField();
        textField.setPromptText("TextField");
        textField.setMaxWidth(100);
        textField.setLayoutX(50);
        textField.setLayoutY(25);
        textField.setFocusTraversable(false);
        Rectangle background = new Rectangle(40, 20, 120, 40);
        background.setStyle("-fx-arc-width: 40px; -fx-arc-height: 40px;-fx-fill: yellow;");
        Scene scene = new Scene(new Pane(background, textField), 200, 80);
        scene.getStylesheets().add("style.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

示例输出: Example Image