Tidak dapat menggayakan kotak mendatar atau menegak
P粉773659687
P粉773659687 2023-09-03 10:20:53
0
1
551
<p>Sangat mengecewakan kerana saya mengikuti panduan dan tutorial asas. Saya boleh menggunakan gaya CSS pada elemen yang berbeza, tetapi bukan pada vbox atau hbox. </p> <p>Saya mempunyai aplikasi mudah berikut, menggunakan FMXL dan CSS untuk mencipta pemandangan mudah: </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; import javafx.scene.Scene; BingRen kelas awam melanjutkan Aplikasi { @Override permulaan kekosongan awam(Peringkat primerStage) { Akar induk = null; FXMLLoader loader = FXMLLoader baharu(); URL xmlUrl = getClass().getResource("/BingRen.fxml"); loader.setLocation(xmlUrl); cuba { akar = loader.load(); Adegan adegan = Adegan baharu(akar,400,400); scene.getStylesheets().add(getClass().getResource("BingRen.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } tangkapan (Pengecualian e) { e.printStackTrace(); } } public static void main(String[] args) { pelancaran(args); } }</pre> <p>Menggunakan FXML, buat hanya BordPane dan 2 HBox, setiap satu mengandungi label.几乎和 HellopApp 一样简单:</p> <pre class="brush:php;toolbar:false;"><?xml version="1.0" pengekodan="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.geometry.*?> <BorderPane fx:id="rootBorderPane" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="MainControler"> <atas> <HBox> <Label text="Apl BingRen" /> </HBox> </atas> <bawah> <HBox> <Teks label="Bar status" /> </HBox> </bawah> <pusat> </center> </BorderPane></pra> <p>还有CSS来设置一些基本属性:</p> <pre class="brush:php;toolbar:false;">.hbox { -warna-latar-fx: #00ff00; -fx-border-color: #00ff00; -fx-border-width: 2px; -fx-padding: 10; -fx-jarak: 8; } .label { -fx-text-fill: #0000ff; }</pre> <p>标签正确变为蓝色,但未应用 hbox 样式</p> <hr /> <p>事实上,这些建议都不起作用。</p> <p>我尝试过:</p> <ul> <li>将 css 文件中的 .hbox 更改为 .Hbox</li> <li>在css文件中创建#allbox并添加fx-id="allbox"和fxml文件</li> </ul> <p>对于每次更改,我都会更改标签的颜色,以确保新版本的 CSS 能够被读取。</p< <p>标签总是改变颜色,但我从来没有在水平盒中得到背景或填充</p>
P粉773659687
P粉773659687

membalas semua(1)
P粉041881924

Mengapa pendekatan semasa anda gagal

Lihat Dokumentasi CSS一个>.

Untuk HBox

Untuk Tag

Oleh itu, tiada kelas gaya seperti ".hbox" untuk HBox, melainkan anda menambah satu, yang belum anda lakukan.

Pemilih CSS dan Latar Belakang JavaFX

Baca sebahagian daripada graf adegan CSS dan JavaFX bertajuk ":

Contoh aplikasi

Jadi anda boleh selesaikan masalah ini dengan tiga cara:

  1. Gunakan pemilih jenis dalam fail CSS:

    HBox { <css rules> }
  2. Gunakan kelas gaya dalam fail CSS:

    .my-hbox-styleclass { <css rules> }

    dan tulis dalam FXML:

    <HBox styleClass="my-hbox-styleclass">

    Atau tulis dalam kod:

    myHBox.getStyleClass().add("my-hbox-styleclass");
  3. Gunakan ID Gaya dalam fail CSS:

    #my-hbox-id { <css rules> }

    dan tulis dalam FXML:

    <HBox id="my-hbox-id">

    Atau tulis dalam kod:

    myHBox.setId("my-hbox-id");

Perbezaan skop pemilih

Maksud aplikasi standard berbeza untuk setiap kaedah:

  1. Pemilih jenis akan digunakan pada semua jenis HBox dalam antara muka pengguna.
  2. Pemilih Kelas akan digunakan pada mana-mana kandungan yang mempunyai kelas gaya yang diberikan digunakan padanya.
  3. pemilih id biasanya digunakan untuk nod individu dalam UI, bukannya jenis atau kelas nod. Ia mestilah unik dalam dokumen FXML atau pokok graf tempat kejadian, walaupun ini tidak wajib.
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan