最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在一行中設(shè)置 FXML“填充”屬性

如何在一行中設(shè)置 FXML“填充”屬性

慕萊塢森 2023-06-14 16:06:17
我想以與 C# XAML 文件中相同的方式定義按鈕的填充。而不是寫這樣的東西:<Button fx:id="btn1" ...>    <padding>        <Insets top="0" right="5" bottom="10" left="5" />    </padding></Button><Button fx:id="btn2" ...>    <padding>        <Insets topRightBottomLeft="5" />    </padding></Button>,寫起來(lái)會(huì)更容易:<Button fx:id="btn1" ... padding="0 5 10 5" /><Button fx:id="btn2" ... padding="5" />我不知道為什么“填充”屬性有這個(gè)限制。我在FXML 文檔中看到,類型強(qiáng)制可以通過(guò)為給定類型實(shí)現(xiàn)valueOf()方法來(lái)完成:public static Insets valueOf(String info) {    // Data retrieval}但我不知道將它放在哪里,因?yàn)镮nsets類被鎖定(JDK)。因?yàn)檫@是一個(gè)靜態(tài)方法,我認(rèn)為該方法可以在其他地方實(shí)現(xiàn),但啟動(dòng)應(yīng)用程序總是給我一個(gè)強(qiáng)制錯(cuò)誤:Caused by: java.lang.IllegalArgumentException: Unable to coerce 0 5 10 5 to class javafx.geometry.Insets.目前,我找到的唯一解決方案是:定義一個(gè)名為GButton的新 FXML 組件,它繼承了Button定義一個(gè)繼承Insets的Spacing類,并為該類實(shí)現(xiàn)一個(gè)valueOf方法為 GButton 添加一個(gè)“space”屬性(ObjectProperty<Spacing>的實(shí)例),其行為與“padding”相同,并定義其 getter 和 setter。有沒有一種簡(jiǎn)單的方法可以在 Button 標(biāo)記中定義 FXML“填充”,而無(wú)需創(chuàng)建從 Insets 繼承的類?順便說(shuō)一句,如果問(wèn)題有用,別忘了投票:)
查看完整描述

2 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

我不知道為什么“填充”屬性有這個(gè)限制。我在 FXML 文檔中看到,類型強(qiáng)制可以通過(guò)實(shí)現(xiàn)valueOf()給定類型的方法來(lái)完成

這需要Insets實(shí)現(xiàn)一個(gè)static?valueOf(String)方法。那個(gè)類型不存在這個(gè)方法;因此您不能簡(jiǎn)單地通過(guò)屬性指定值。

FXML簡(jiǎn)介:

可以通過(guò)在目標(biāo)類型上static valueOf()定義一個(gè)方法來(lái)實(shí)現(xiàn)其他轉(zhuǎn)換。

不過(guò),您可以使用該style屬性通過(guò) CSS 指定值。這通常比將對(duì)象分配給屬性更短:

<Button?fx:id="btn1"?style="-fx-padding:?0?5?10?5;"?.../>


查看完整回答
反對(duì) 回復(fù) 2023-06-14
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

我知道這個(gè)問(wèn)題很老,但希望我能提供一些有見地的信息。我有同樣的問(wèn)題;?不幸的是,F(xiàn)XML 沒有完整的文檔,但在我看來(lái),將初始化模型拼湊在一起使其變得直觀。

無(wú)論如何,您采用了正確的方法,只是沒有完全完成:

<padding>
????<Insets?top="10"?right="20"?bottom="30"?left="40"/>
????</padding>

將創(chuàng)建一個(gè)等效于 CSS 的填充padding: 10 20 30 40,當(dāng)然,您可以更改它(甚至使用我假設(shè)的 FXML 變量)。

不過(guò),一般來(lái)說(shuō),任何具有javafx.beans適當(dāng)約定屬性的類,您都可以很容易地在 FXML 中創(chuàng)建自定義組件并像上面那樣分配成員值。

希望這對(duì)任何人都有幫助!


查看完整回答
反對(duì) 回復(fù) 2023-06-14
  • 2 回答
  • 0 關(guān)注
  • 380 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)