<p>가이드와 기본 튜토리얼을 따라가다 보니 매우 실망스럽습니다. CSS 스타일을 다른 요소에 적용할 수 있지만 vbox나 hbox에는 적용할 수 없습니다. </p>
<p>FMXL과 CSS를 사용하여 간단한 장면을 만드는 다음과 같은 간단한 애플리케이션이 있습니다. </p>
<pre class="brush:php;toolbar:false;">import java.net.URL;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
javafx.scene.Scene 가져오기;
공개 클래스 BingRen은 애플리케이션을 확장합니다.
@우세하다
공개 무효 시작(스테이지 PrimaryStage) {
상위 루트 = null;
FXMLLoader 로더 = 새로운 FXMLLoader();
URL xmlUrl = getClass().getResource("/BingRen.fxml");
loader.setLocation(xmlUrl);
노력하다 {
루트 = loader.load();
장면 장면 = 새 장면(루트,400,400);
scene.getStylesheets().add(getClass().getResource("BingRen.css").toExternalForm());
PrimaryStage.setScene(장면);
PrimaryStage.show();
} catch(예외 e) {
e.printStackTrace();
}
}
공개 정적 무효 메인(String[] args) {
발사(args);
}
}</pre>
<p>FXML을 사용하여 각각 레이블이 포함된 BordPane과 2개의 HBox를 만듭니다.几乎와 HellopApp 一样简单:</p>
<pre class="brush:php;toolbar:false;"><?xml 버전="1.0" 인코딩="UTF-8"?>
<?java.lang.* 가져오기?>
<?java.util.* 가져오기?>
<?javafx.scene.* 가져오기?>
<?javafx.scene.control.* 가져오기?>
<?javafx.scene.layout.* 가져오기?>
<?javafx.geometry.* 가져오기?>
<BorderPane fx:id="rootBorderPane"
xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="MainControler">
<위로>
<H박스>
<라벨 텍스트="BingRen 앱" />
</H박스>
</top>
<하단>
<H박스>
<라벨 텍스트="상태 표시줄" />
</H박스>
</하단>
<중앙>
</center>
</BorderPane></pre>
<p>还有CSS来设置一些基本属性:</p>
<pre class="brush:php;toolbar:false;">.hbox {
-fx-배경색: #00ff00;
-fx-테두리-색상: #00ff00;
-fx-테두리-너비: 2px;
-fx-패딩: 10;
-fx-간격: 8;
}
.라벨 {
-fx-텍스트 채우기: #0000ff;
}</pre>
<p>标签正确变为蓝color,但未应用 hbox 样式</p>
<시간 />
<p>事实上,这些建议道不起작품용。</p>
<p>我尝试过:</p>
- 将 css 文件中的 .hbox 更改为 .Hbox
<li>재css文件中创建#allbox并添加fx-id="allbox"和fxml文件</li>
</ul>
<p>对于每次更改,我道会更改标签的颜color,以确保new版本的 CSS 能够被读取。</p>
<p>标签总是改变颜color,但我从来没有재수평盒中得到背景或填充</p>
현재 접근 방식이 실패하는 이유
보기 CSS 문서一个>.
HBox
용For 태그
따라서 아직 추가하지 않은 HBox용 ".hbox"와 같은 스타일 클래스는 없습니다.
CSS 선택기 및 JavaFX 배경
CSS 및 JavaFX 장면 그래프 " 부분 읽기:
적용 사례
이 문제는 세 가지 방법으로 해결할 수 있습니다.
CSS 파일에서 유형 선택기를 사용하세요:
으아악CSS 파일에 스타일 클래스 적용:
으아악FXML로 작성:
으아악또는 코드를 작성하세요:
으아악CSS 파일에 스타일 ID 적용:
으아악FXML로 작성:
으아악또는 코드를 작성하세요:
으아악선택기 범위 차이
표준 적용의 의미는 각 방법에 따라 다릅니다.