我想删除TextField中的内部阴影。
这是css。
-fx-font-size: 12px;
-fx-font-family: "Segoe UI Semibold";
-fx-pref-width:250px;
-fx-pref-height:35px;
-fx-background-radius:0px;
答案 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