Tôi có một cảnh đơn giản với mã này:JavaFX 2 và css pseudo-classes: thiết lập các thuộc tính hover trong phương pháp setStyle
scene.getStylesheets().add("packagename/testcss.css");
Và testcss.css của tôi là:
.button {
-fx-background-color: #DDFFA4;
}
.button:hover {
-fx-background-color: #9ACD32;
}
gì tôi đạt được là hiệu ứng tốt đẹp được gọi là di chuột khi trong các ứng dụng web.
...
HỎI
Làm thế nào tôi có thể đạt được tác dụng tương tự nhưng không có một file css riêng biệt, chỉ cần thông qua phương thức setStyle của Button của tôi?
Vấn đề là setStyle chỉ chấp nhận định nghĩa kiểu và bỏ chọn bộ chọn.
button.setStyle("-fx-background-color: #DDFFA4;");
Bộ chọn, trong trường hợp di chuột của tôi là pseudo-class:
.button:hover
nhưng nơi nào tôi có thể thiết lập nó?
Hơn nữa, javadoc là rõ ràng trong không bao gồm bộ chọn từ đối số phương pháp setStyle:
Lưu ý rằng, giống như các thuộc tính style HTML, biến này chứa phong cách thuộc tính và các giá trị và không phải là phần chọn của quy tắc kiểu.
+1 về tính đầy đủ của câu trả lời với cả sáng tạo (ràng buộc dựa) và truyền thống (sự kiện có trụ sở) giải pháp. Điều thú vị là thực tế của nhóm thành changeBackgroundOnHoverUsingEvents cả cài đặt sự kiện và khởi tạo theo kiểu chuẩn, theo cách này chúng tôi có một điểm cấu hình cho tiện ích, giảm nguy cơ sửa đổi không đồng nhất và làm nổi bật giải pháp dựa trên sự kiện đó. khởi tạo. Phương pháp này cũng có thể được xem như là một bộ khởi tạo, với một số tên như "initButtonStyle". – AgostinoX
Xin chào Jewelea, bạn đã đề cập rằng JavaFX 8 cho phép một số sửa đổi. Chúng ta có thể có một liên kết hoặc một ví dụ :).Nguyên nhân câu hỏi là thực sự cũ và cần một chút cập nhật trong phần này. – GOXR3PLUS
Đã cập nhật câu trả lời để liên kết tới API nền JavaFX 8. – jewelsea