JavaFX에서 계산기를 만들고 있습니다. 나는 fx : ID #labelResult이라는 레이블을 CSS 스타일로 사용합니다. 이제 키보드 수신기를 메인 창에 추가했습니다. 그래서 내가 누를 때 왼쪽/오른쪽 화살표 키를 #labelResult의 배경색을 문자열 bgColors 배열의 색상으로 바꿉니다. 또한 위/아래 화살표 키를 눌렀을 때 레이블 글꼴 크기를 변경하는 기능이 추가되었습니다. 이제 문제가 생겼어. 그것은 동시에 적용 할 수있는 두 가지 효과를 가질 수없는 것 같습니다. 그래서 레이블의 배경색이 바뀌고 글꼴 크기 변경 메커니즘을 트리거하면 bg 색상 효과가 재설정되는 동안 글꼴 크기 효과가 레이블에 적용됩니다. 동시에 두 효과를 모두 적용 할 수 있습니까?하나의 스타일에 두 개 이상의 스타일을 동시에 프로그래밍 방식으로 적용 할 수 있습니다.
P.S : setStyle 메서드를 사용하여 내 컨트롤러의 두 가지 스타일 모두에 스타일을 적용했습니다. 어떤 일이 일어나는지
CSS (before applying styles in my controller)
#labelRESULT {
-fx-background-color: rgba(59, 74, 107, 0.8);
-fx-font-size: 45px;
-fx-text-fill: #fff;
}
Controller.java
@FXML
private Label labelRESULT;
@FXML
private void handleKeys(KeyEvent event) {
int size = 45;
String keyPressed = event.getCode().toString().toUpperCase();
switch (keyPressed) {
case "RIGHT":
labelRESULT.setStyle("-fx-bg-color: #" + bgColors[1]);
break;
case "UP":
labelRESULT.setStyle("-fx-font-size: " + (size + 2) + "px;");
break;
}
}
이미지 : 스타일 적용하기 전에 http://imgh.us/javafx-calc.png
1 프로그래밍 방식
2 라벨의 BG 색상을 변경 한 후
3 배경색이 당신의 노드/
당신은 이전의 모든 스타일을 오버라이드합니다. 더 나은 해결책은 별도의 CSS 파일을 만들고 클래스간에 전환하는 것입니다. –
@fabian 감사, 휴식을 추가했습니다. –