javafx 執行在android上遇到的難題-完美解決
有興趣可以瞭解下這款國內人氣很旺的JAVA程式碼生成器基於拖拽,不用寫複雜的模板,支援多種資料庫,適配wap,管理後臺各種功能全有 免費開源 地址:https://blog.csdn.net/adyuebanwan/article/details/83006405 或者 http://www.magicalcoder.com
=======================================================================================
今天又拿起javafx 研究了一把 最後終於成功部署到了 android上 把步驟簡單記錄下來,有興趣的可參考,不會的加群323237052
原文是:javafx部署到android上居然不支援中文,現在重要找到了解決方案 一句話:自定義字型 然後全域性設定字型就可以了 這個是解決思路
scene.getStylesheets().add("/magicalcoder.css");
css:magicalcoder.css
@font-face { src: url('LiSu.ttf'); } .label{ -fx-font-family: LiSu; -fx-font-size: 30; } .button{ -fx-font-family: LiSu; } .text-field{ -fx-font-family: LiSu; -fx-font-size: 30; } .text-area{ -fx-font-family: LiSu; -fx-font-size: 20; }
檔案目錄:
resources:magicalcoder.css LiSu.tff
國外有個專案 gluon,去他們官方網站下載 按照步驟來做 最終就能成功 以上拋磚引玉 中文問題一解決 就太好了 完全可以用來開發一下簡單的專案了
親測已經成功部署到android 至於ios由於沒機器,沒嘗試 不過肯定也可以
android上的速度非常快 跟原生沒啥區別
java片段
public BasicView(String name) { super(name); Label label = new Label("隸書"); Button button = new Button("隸書字型"); button.setGraphic(new Icon(MaterialDesignIcon.LANGUAGE)); TextArea textArea = new TextArea(); InputStream inputStream = null; final Font font ; try { inputStream = GluonApplication.class.getResourceAsStream("/LiSu.ttf"); } catch (Exception e) { e.printStackTrace(); } font = Font.loadFont(inputStream,30); // label.setFont(font); button.setOnAction(e -> { label.setText(font.getFamily());//獲取字型的名稱 } ); TextField textField = new TextField("測試"); textField.setText("好的呀"); VBox controls = new VBox(15.0, label, button); controls.getChildren().add(textField); controls.getChildren().add(textArea); controls.setAlignment(Pos.CENTER); setCenter(controls); }
"
1 中文問題 你會發現居然不支援中文
Droid Sans Fallback
查詢原因:因為字型的遠古
只要下面控制元件加上字型屬性 便可輕鬆解決中文無法顯示的問題
<TextArea prefHeight="50.0" prefWidth="600.0" text="內容">
<font>
<Font name="Droid Sans Fallback" size="13.0" />
</font>
</TextArea>
費了好大勁本以為中文問題解決了 可惜,你試著在遠古textfield輸入中文 無論如何也無法出來 只能輸入英文和數字
這又是為什麼呢 希望大神能解決 研究了很久 無法解決,受傷的總是中國人 要是哪位大神解決了我的難題 奉上100元川資作為感謝
懸賞:使用gluon javafxposts mobile工具 打出來的apk包,所有的輸入框控制元件都無法輸入中文
不過為了達到輸入中文的目的,我們曲線救國吧
webview神器,javafx支援webview ,我們把要輸入中文的部分放到webview裡面吧,然後通過java與webview的js互動,可以獲取webview中
元素的內容,這樣也就拿到了中文,可惜這一切實在太費勁了,為了箇中文 繞一大圈,無奈 javafx 就這樣 不溫不火的 oracle算是坑了javafx 一點都不用心
不跨平臺 誰會用你啊
"