問題タブ [scalafx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - ScalaFXでプロパティ変更リスナーを正しく宣言するには?
このコードを例として使用して、スライダーの変更を追跡し、結果を「speed: Int」変数に入れるために次のように記述しました。
しかし、それはエラーを引き起こします:
このエラーに変更ObservableValue[_ <: Number]
するとObservableValue[_ <: Number, _ <: Number]
消えますが、別のエラーが発生します:
何か案は?
更新: ObservableValue
(よくわからない ScalaFX バージョンに解決されていた) を に置き換えることでエラーを解決しましたjavafx.beans.value.ObservableValue
。コンパイルしてエラーをスローするようになりましたが、まだ動作しません。コードが呼び出されることはありません。
scala - 最も単純なscalafxの例はコンパイルできません
最も単純な例でscalafxを試していますが、コンパイルできず、エラーは次のようになります。
Error:scalac: javafx.stage.PopupWindow.AnchorLocation への不正なシンボリック参照がクラス ファイル 'StageIncludes.class' で検出されました。オブジェクト javafx.stage.PopupWindow のタイプ AnchorLocation にアクセスできません。現在のクラスパスに javafx.stage.PopupWindow.AnchorLocation の定義がないか、現在のクラスパスで見つかったバージョンと互換性のないバージョンに対して StageIncludes.class がコンパイルされた可能性があります。
グーグルで検索したところ、クラスパスに追加する必要があると誰かが言っているのを見つけましjfxrt.jar
たが、まだ機能していません。
私のコード:
build.sbt
App.scala
それで全部です。
scala - ScalaFXで動的に作成された要素イベントハンドラからFXML定義の要素にアクセスする方法は?
FXML 定義のフォーム コントローラーで動的に作成されたボタンのイベント ハンドラーを記述しようとしていますが、問題なく動作しているように見えますが、別の要素にアクセスしようとすると失敗します。
たとえば、次のコードは問題なく動作します。
ただし、関数の先頭で NullPointerException をスローしてアプリケーションを失敗させるには、に置き換えるだけで十分println("123")
です。if(slider != null) println("123")
initialize
私が到達しようとしているのは、ボタンを押したときにスライダーの値を調整することです (この特定のボタンを動的に作成し、フォームの残りの部分を FXML からロードします)。スライダー変数で行われた単なるヌルチェックが失敗の原因であり、必ずしもその値の調整ではないことがわかりました。
スライダー変数が null の場合、チェックでこの事実が得られ、アクセスできない場合、アプリケーションはコンパイルに失敗しますが、得られるものは異なります。
java - scala コードから ` ` 型パラメータを受け取る Java メソッドを呼び出しますか?
scalafx
Javaからメソッドを呼び出す必要が あるコードを書いています:
addListener
ただし、パラメーターのコンパイル エラーが報告されます。
タイプの不一致、予想: ChangeListener[_ >: String]、実際: ChangeListener with Object { def stateChange(e:ChangeEvent) Unit }
そしてaddListener
これはJavaメソッドです:
修正方法は?
scala - TableView のカスタム セル
私は scalafx プロジェクトに取り組んでおり、一部のセルにボタンが含まれている TableView が必要です。tablecell内にグラフィックを配置する方法の例を見つけました。例を使用し、ボタンを使用する呼び出しのみを置き換えるとgraphic = ...
、ボタンのある列を除くすべての列が空のセルが取得されることがあります。
これを修正するにはどうすればよいですか? (名前の値が単なる空の文字列ではないことを確認したため、最後のログインボタンは表示されません)
ボタンを使用するように変更された例のコードを次に示します。
javafx - exportjars := true の意味は何ですか?
JavaFx/ScalaFx アプリケーションsbt-javafxをパッケージ化するために sbt プラグインを使い始めたところです。これはJava 7の下です。
プラグインはうまく機能しているように見えますが、マルチモジュール プロジェクトを適切にパッケージ化することはできません。彼らが見つけた回避策はexportsJars := true
、JavaFX モジュールが依存するすべてのモジュールで使用することです。
また、JavaFX アプリケーションを作成できる IntelliJ IDEA もありますが、自動ビルドが壊れてしまいます。実行可能ファイルを自動化したいと思っています。
私の sbt ビルドに対するそのパラメーターの広範な影響を理解する必要があります。なぜ設定が必要なのtrue
ですか?
ヘルプの定義は次のとおりです。
このプロジェクトのエクスポートされたクラスパスにクラスが含まれているか (false)、パッケージ化された jar が含まれているか (true) を決定します。
デフォルトでは のように聞こえますfalse
。なんで?
ps sbt を使用して JavaFX/ScalaFX アプリケーションをパッケージ化するためのよりクリーンなソリューションを誰かが持っている場合は、お気軽に共有してください。
popup - JavaFXでヒントテキストを表示する簡単な方法はありますか?
Borland VCL ライブラリでは、ほとんどすべてのコントロールにヒントプロパティがありました。実行時に、それぞれのコントロールの上にマウスを置くと、マウス カーソルがボタンの上に置かれているときに Windows エクスプローラーやその他のプログラムのヘルプ メッセージのように、マウスを動かすとヒント テキストを含む小さなボックスがポップアップ表示され、再び消えます。 .
JavaFX にも同様の概念はありますか (実際、私は ScalaFX を使用しています)。
もちろん、装飾なしで新しいステージを作成したり、マウスリスナーを追加したりできますが、まだどこかで利用できませんか?
scala - カスタム ScalaFX コントロールの作成
カスタム ScalaFX コントロールを作成する正しい方法は何ですか? 私は Swing と Scala Swing の出身です。カスタム コンポーネントはComponent
orを拡張するだけで簡単に作成できPanel
ます。しかし、ScalaFX の を拡張しようとすると、JavaFXデリゲートControl
なしでは拡張できません。Control
ScalaFX クラスの代わりにベースの JavaFX クラスを拡張して、カスタム ScalaFX コンポーネントを作成する必要がありますか?
scala - ScrollPane(JavaFX/ScalaFX)の背景を変更するには?
ScrollPane の背景色を変更したい。これは、私がそれをしようとする私のコードの一部です:
テキストは問題ないように見えますが、 Scala バージョン 2.10.3 (Java HotSpot(TM) 64 ビット サーバー VM、Java 1.8.0_05)を使用して、背景色を変更しようとしても効果がありません。
Scenic Viewで調べると、ScrollPane の下のシーン グラフに 2 つの StackPanes が予期せず表示されていることがわかりました。そのため、階層は次のようになります。
- ScrollPane //私が作成したもの
- StackPane //予期しない -- コンテンツをクリップします
- StackPane //予期しない -- フルサイズのコンテンツ
- //私が作成したグループ
- //私が作成したテキスト
いずれかの StackPane-s の背景を"-fx-background-color: blue"
( Scenic Viewを使用して) たとえば、変更すると効果がありますが、ScrollPane のスタイルには影響しません。しかし、コードからそれを行う方法は? 私が行った場合
、それは言う
グループ@567fa81a
StackPanes にアクセスしたり、背景を変更したりする簡単な方法はありますか? 大きな塗りつぶされた長方形を「平手打ち」することはできますが、それは醜く見え、サイズ変更が複雑になります。適切な背景の何が問題になっていますか?
scala - sbt-native-packager と ScalaFXML によるマクロ展開中の例外
ScalaFxを探索するために作成した github 上の小さなプロジェクトと、より大きなプロジェクトで使用したい他のいくつかのものがあります。今のところ、ScalaFX と ScalaFXML を使用して作成された単純な計算機である単一のサブプロジェクトが含まれています。
プロジェクトは、SBT コマンドを使用して正常にビルドおよび実行されますcalculator/run
。
現在、sbt-native-packager を使用してパッケージ化しようとしています。「exemple-cli」という単純なプロジェクトを追加しました (sbt-native-packager のドキュメントから)。このプロジェクトは問題なくパッケージ化されますexemple-cli/stage
(exemple-cli/target/universal/stage で期待される結果が得られます)。ただし、コマンドを実行するとcalculator/stage
、次のエラーが発生します。
どうやら、コントローラのプロキシ クラスを生成するために ScalaFXML で使用されるマクロにエラーがあるようですが、これは sbt-native-packager でパッケージ化する場合にのみ発生し、SBT でコンパイルする場合には発生しません。 ?