2012-11-01 37 views
6

Tôi muốn xóa đường viền màu xanh lam làm cho bảng tính được xem khi được tập trung.
javafx-2, xóa đánh dấu tiêu điểm qua CSS

enter image description here

Tôi đã kiểm tra vào caspian.css, mà đối với hầu hết các thành phần như Button và TextField, làm điều gì đó như:

.table-view:focused { 
    -fx-background-color: -fx-focus-color,-fx-box-border,-fx-control-inner-background; 
    -fx-background-insets: -1.4, 0, 1; 
    -fx-background-radius: 1.4, 0, 0; 
    /*....*/ 
    -fx-padding: 1; /* 0.083333em; */ 
} 

Câu hỏi của tôi là về CSS, ở cuối. Tôi có thể ghi đè thông số này pseudoclass trong biểu định kiểu thay vì cố gắng biến màu thành màu trong suốt không?

Trả lời

9

Có thể. Trong stylesheet của bạn xác định chính xác bộ chọn CSS cùng với thuộc tính JavaFX CSS của sự lựa chọn của riêng bạn như thế này:

.table-view:focused { 
    -fx-background-color: red /* or transparent or other preferred color */,-fx-box-border,-fx-control-inner-background; 
    -fx-background-insets: -1.4, 0, 1; 
    -fx-background-radius: 1.4, 0, 0; 
    /*....*/ 
    -fx-padding: 1; /* 0.083333em; */ 
} 
2

Bởi vì JavaFX 8 có một chủ đề mới 'modena' nhưng với vấn đề cũ Tôi muốn làm một bản cập nhật của câu trả lời của Uluk Biy và cung cấp thêm một số thông tin:

Nếu bạn tự hỏi, một số phong cách đến từ đâu, bạn có thể xem xét modena.css. Bạn có thể tìm thấy tệp css này trong jfxrt.jar, bản thân nó có thể được tìm thấy trong thư mục cài đặt JRE hoặc JDK của bạn. Trên Ubuntu 14.04 nhà jdk thường là dưới

/usr/lib/jvm/java-8-oracle/ 

và jfxrt.jar nên ở đây

/usr/lib/jvm/java-8-oracle/jre/lib/ext 

Mở file jar và có một cái nhìn trong thư mục/com/CN/JavaFX/cảnh/điều khiển/da/modena, nơi bạn sẽ tìm thấy những modena.css

Bắt đầu từ dòng 406 bạn có thể nhìn thấy một tiêu đề như thế này

/* ==== BUTTON LIKE THINGS ============================================== */ 

Css trong phần này chỉ định nền và đường viền cho nhiều điều khiển và vùng chứa. Bạn chỉ cần tìm kiếm cho lớp mục tiêu của bạn. Tôi sẽ giới thiệu nó cho các nút bấm như một ví dụ: Đối với lớp nút css sau được quy định

-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 
-fx-background-insets: 0 0 -1 0, 0, 1, 2; 

Đối với một số lý do họ không sử dụng biên giới, nhưng sử dụng nhiều hình nền mô phỏng một biên giới như nhìn. Vì vậy, nếu bạn chỉ muốn loại bỏ đường viền, bạn phải điều chỉnh nền và thuộc tính inset.

Cuối cùng nếu bạn muốn loại bỏ các hiệu ứng tập trung, bạn phải ghi đè mặc định này css

.button:focused, 
.toggle-button:focused, 
.radio-button:focused > .radio, 
.check-box:focused > .box, 
.menu-button:focused, 
.choice-box:focused, 
.color-picker.split-button:focused > .color-picker-label, 
.combo-box-base:focused, 
.slider:focused .thumb { 
    -fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color; 
    -fx-background-insets: -0.2, 1, 2, -1.4, 2.6; 
    -fx-background-radius: 3, 2, 1, 4, 1; 
} 

cho các điều khiển của bạn sự lựa chọn với các định nghĩa mặc định cho nền và insets từ trên cao. Ví dụ. cho các nút:

.button:focused { 
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 
    -fx-background-insets: 0 0 -1 0, 0, 1, 2; 
} 
+0

tôi đã phải vật lộn khá nhiều trước khi nhìn thấy câu trả lời của bạn, thực sự họ không sử dụng một tài sản biên giới nhưng một hình chữ nhật và một nền thanks a lot cho trỏ này ra. JavaFx chắc chắn cần tài liệu tốt hơn các công cụ css ... – rozaydin

Các vấn đề liên quan