2013-01-17 39 views
10

Tôi có một số TabPane với một số Tab s. Nếu kết quả của một hoạt động trong Tab không thành công, tôi muốn đặt TabLabel thành màu đỏ hoặc có lẽ là kết cấu được băm (đối với những người bị mù màu). Tôi muốn đặt lại Color về giá trị mặc định, sau đó.Làm thế nào để lập trình thiết lập màu sắc hoặc kết cấu của nhãn tab trong JavaFX?

Từ đọc một số câu hỏi ở đây, người ta có thể đặt tĩnh câu hỏi bằng cách sử dụng một biểu định kiểu.

#MyTabPane .tab *.tab-label { 
    -fx-text-fill: white; 
} 

Làm thế nào người ta sẽ truy cập vào Tablabel và thiết lập nó sang màu/kết cấu động?

tab.setStyle("??");

BỔ SUNG THEO ELLTZ

Làm sao người ta sử dụng Styles inline có thể đã nêu ở trên để thay đổi Paint của cả Label với lớp phong cách tab-labelButton (StackPane) cũng tab-close-button

Ví dụ về mã cần

Trả lời

11

Thiết lập đồ họa và phong cách nó đã làm các trick cho tôi:

Tab tabB = new Tab(); 
tabB.setText(""); 
tabPane.getTabs().add(tabB); 
tabB.setStyle("-fx-border-color:red; -fx-background-color: blue;"); 
tabB.setGraphic(new Label("Tab B")); 
tabB.getGraphic().setStyle("-fx-text-fill: #c4d8de;"); 
+0

Cảm ơn. Đáng ngạc nhiên, nếu bạn làm tab1.setGraphic (imageView), và sau đó tab2.setGraphic (imageView), đồ họa chuyển đổi từ tab1 sang tab2. Chỉ một tab có hình ảnh. – likejiujitsu

+1

Điều này là không đáng ngạc nhiên, bởi vì một Node luôn có thể chỉ một lần trong SceneGraph. Một "đồ họa" là một nút chung trong SceneGraph giống như bất kỳ nút nào. – Sebastian

+1

khiến bạn tự hỏi tại sao họ gọi đó là 'đồ thị' ngay từ đầu. Nhưng tốt, có nó là một sự thật, do đó, nó không phải là đáng ngạc nhiên rằng ImageView chỉ có thể có 1 phụ huynh. –

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