問題タブ [fxml]

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.

0 投票する
3 に答える
11961 参照

scala - Scala+JavaFXデスクトップアプリケーション開発の開始

Scala + JavaFXデスクトップアプリケーションを構築するためのガイドやチュートリアルはありますか?

良いソースを見つけるのに苦労していて、IDEとしてIntelliJIDEAを使用しています。

最も単純なデスクトップのHelloWorldサンプルでさえ、どこから始めればよいかわからないため、大いに役立ちます。

更新:これは私が今持っているものです:

それを実行すると、次のようになります。

スレッド"main"の例外java.lang.IllegalStateException:FXアプリケーションスレッドではありません。currentThread = main

ラベル付きのHelloWorldウィンドウを表示するにはどうすればよいですか?

0 投票する
1 に答える
21932 参照

javafx-2 - コンテンツをJavaFXタブに動的にロードする方法は?

JavaFX と FXML を使用して作成した GUI があります。

この GUI には多くのコンポーネントがあり、それらすべてが一度に必要になるわけではありません。

たとえば、サーバー パーツから都市のリストを受け取る GUI を想像してみてください。各都市は独自のタブで説明されています (そして多くのノードで説明されています)。都市のセットには 30 の要素が含まれています。

GUI が起動されると、サーバーに都市のリストを要求します。サーバーは都市のランダムな「サブセット」を返します (つまり、モスクワ + リガ + ニューヨーク、サンクトペテルブルク + 東京、アムステルダムのみ、または 30 都市すべてを 1 つのセットにすることができます)。

そう。ノード ツリーに 30 個のタブすべてを含める必要はありません (メモリを「食べる」だけで、それ以上のものは何もないと思います)。

GUI の各時点でのタブの数を管理したいと考えています。

私が持っている最初の簡単な解決策は次のとおりです。

  1. すべての都市のコンポーネントを含む FXML ファイルを作成します
  2. コントローラー クラスでの初期化中に、不要なタブを削除します。

このソリューションには問題があります。tabPane.getTabs().remove(index)まず、タブとそのすべてのコンテンツをノード ツリーから本当に削除するかどうかはわかりません。第 2 に、不要なタブはすべて削除される前に初期化されるため、とにかくメモリとリソースを使用し、GUI が必要以上に遅くなる可能性があります。

私が持っている2番目の解決策は次のとおりです。

  1. 多くの FXML を作成します。すべての都市に 1 つ、都市ごとに 1 つ、都市の組み合わせごとに 1 つ。

しかし、多くの FXML への道があるため、このソリューションも役に立ちません。

私が夢見る解決策:

  1. 都市ごとに 1 つの FXML ファイルを作成し、タブ付きのメイン アプリ用に 1 つの FXML ファイルを作成します。
  2. 必要に応じて、FXML シティ ファイルのコンテンツを動的にタブに読み込みます。

したがって、誰かがこのタスクに関するアイデアを持っているか、解決策を知っている場合は、それを手伝ってください...

0 投票する
1 に答える
757 参照

java - リソースバンドルを使用してfx:valueを設定するにはどうすればよいですか?

%keyjava fxでは、表記を使用してコンポーネントにi18nラベルを使用できます。

例えば ​​-

コンポーネント値にi18nを使用することは可能ですか?

次のコードは機能しません-

0 投票する
2 に答える
3551 参照

media-player - javafx fxml メディアプレーヤー

YouTubeビデオを開くためにメディアプレーヤーをFXMLに埋め込む方法を知っている人はいますか?

私はこれを書きました:

しかし、「メディア」が宣言されている行でこの例外が発生しています:

誰 ?

皆さん、ありがとうございました !

0 投票する
2 に答える
40622 参照

controller - コントローラーを使用した複数のFXML、オブジェクトの共有

皆さん、こんばんわ、

このトピックに関する投稿をすでにたくさん見つけましたが、それでもController1からController2にオブジェクトを渡すことができません。これを行う完全なチュートリアルまたはサンプルプロジェクトはどこかにありますか?

私は立ち往生するまでこれまでに到達しました:

カントリークラス

プログラムが起動すると、メインFXMLがロードされます(Sample.fxml)。これには、上部パネルにメニューバーがあり、中央にコンテンツペインがある境界ペインが含まれています。初期化時に、新しいCountryオブジェクトを作成し、それをグローバル変数に格納します。メニュー項目がクリックされたときに別のFXMLをコンテンツペインにロードするメソッドがあります。

SampleController.java

ここで、Sub1.fxmlがロードされたときにCountryオブジェクトをキャプチャしたいと思います。つまり、initialize()でcountryオブジェクトをフェッチする必要があります。

Sub1Controller.java

私が持っている質問は、getCountryFromRoot()メソッドを使用して値BelgiumでCountryオブジェクトをフェッチできるように、「元の」SampleControllerオブジェクトを取得するにはどうすればよいですか?私はこの問題を何時間も検索していて、これに関するStackOverflowのすべての投稿を読んでいますが、不足しているリンクが見つからないようです...(できればこのコードで)助けていただければ幸いです!

長い投稿で申し訳ありませんが、私は可能な限り完全にしようとしました、そうでなければ私は決して理解できません...

0 投票する
1 に答える
2735 参照

javafx-2 - Scenebuilder の階層カスタム JavaFx コンポーネントを使用したクラスパスの解決

FXML を使用してカスタム コンポーネントを作成しています。カスタム コンポーネントは、階層的に設計されています。

別のカスタム コンポーネント A を使用するカスタム コンポーネント B を設計すると、シーンビルダーでクラスパスの問題ダイアログが表示され、適切なクラスパスを設定するだけでこれを修正できます。

ただし、A を含む B を含む C などの 3 つのコンポーネントを作成し、Scenebuilder でトップレベルのコンポーネント C を開こうとすると失敗します。正式に指定したクラスパスを要求されます。B は見つかりますが、A は見つかりません。

アプリケーションが適切に実行できるため、クラスパス、FXML、およびコードは正しいです。Scenebuilder のみに問題があります。

Scenebuilder で階層カスタム コンポーネントを開くにはどうすればよいですか?

FXML を使用した階層コンポーネント定義の例への参照は、非常に高く評価され、50 ポイントの報奨金を得ることができます。(必要なレベルは 3 つだけ)

0 投票する
1 に答える
380 参照

javafx-2 - XAML のデータ テンプレートに似た FXML のマークアップ手法はありますか?

たとえば、ListView 内の項目の UI を宣言的に指定します。

XAMLの方法。

0 投票する
1 に答える
3847 参照

java - JavaFxはエンティティモデルをTableViewにバインドします

TableViewとMySQLデータベースを備えたJavaFxアプリケーションがあります。

データベースからエンティティモデル(製品)を作成しました。

もつObservableList<Products> proList;

データベースからこれを埋めてproListからバインドするにはどうすればよい@FXML private TableView<Products> tableView;ですか?

私はJavaFxで非常に新しいです。

ありがとう

0 投票する
1 に答える
439 参照

java - JavaFx ml Eclipse

このトピックについて以前に質問を投稿し、遠くまで行きましたが、突然壁にぶつかりました

だから、Eclipse用のGUIビルダーでのビルドにうんざりしていて、JavaFx Sceneビルダーを試してみたいと思っています。これまでのところ、e(fx)clipseをインストールし、最新バージョンのJDKもインストールしました。

私の前の質問の人が私にこのリンクをくれました: http://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm

基本的に、Java で FXML プロジェクトを作成することから始める方法を示しています。ただし、これのガイドはNetbeans向けであり、プロジェクトを作成する手順に従おうとすると、次のことに失敗します:

2.JavaFX アプリケーション カテゴリで、JavaFX FXML アプリケーションを選択します。[次へ] をクリックします

JavaFx FxML アプリケーションを選択するオプションがありません。

だから私の質問は、Eclipse のガイドを持っている人はいますか、それとも経験があり、JavaFx Scene builder で GUI を構築したいときに私がすべきことを共有できる人はいますか? ?

あなたの一人が私を助けることができることを願っています

よろしくお願いします

マーク・ラスムッセン

0 投票する
1 に答える
3780 参照

javafx - JavaFX 自動スクロール自動更新テキスト

私が答えられなかった JavaFX に関する初心者の質問は、それが非常に簡単である必要があり、私が見たどこにもリソースが見つからないことを知っていたにもかかわらず (チュートリアル、多くの Oracle オンライン ドキュメント、記事、よく-既知の JavaFX ブロガーなど)

コマンド ライン (スクリプト) 実行アプリケーションを開発しており、コマンド ラインで発生するように、進行中の方法で表示できるスクリプトから (ProcessBuilder 経由で) 出力を正常に取得しました。つまり、System.out.println(line);実行中の「myProcess」によって返された入力ストリームから出力を返すだけで、次のように作成された出力をコンソールに表示して、一日中実行できます。

そのため、スクリプトから返されるすべての出力を確認できます。

JavaFX TextArea または ScrollPane をセットアップしたい、または、この出力テキスト (数千行のようにたくさんあります) を、スクリプトで行われていることの進行中の「進行状況」として表示したいのですが、それが起こるように。シーンがあり、ボタンがあり、このシーンから入力を取得してスクリプトの実行を開始しますが、いわば「RUN THIS SCRIPT」ボタンをクリックした結果を表示したいと思います。

ここで説明されているように TextAreaを作成する必要があると思います。または、作成を開始するにはTextBuilderが役立つかもしれません。わからない。

これのバインディングまたは自動スクロール/自動更新部分をセットアップする方法について少し助けが必要です。

JavaFXでこれを行うために、誰かが私に始める場所を提供できますか? Swing は使用しない方がよいでしょう。

(私は JavaFX 2.2、JDK 1.7u7、すべての最新のものを使用しています。はい、これは FXML アプリです。そのため、そのようにすることをお勧めします。)

更新: Sergey Grinev の回答は、バインディングの部分で非常に役に立ちました。しかし、「セットアップ方法について少し助けて」と頼んだときの意味をもう少し詳しく説明します。基本的には、ユーザーがスクリプトをキャンセルしたり、監視したりできるように、メイン シーンに制御を戻す必要があります。どうしたの。そのため、そのスクリプトを実行するプロセスを「生成」したいと思います (つまり、ある種の「フリー ランニング プロセス」があります) が、それでもそこから出力を取得します。(最初の質問ではそれがよくわかりませんでした。)

ここで使用している手法 (以下を参照) は、プロセスで waitFor を実行することですが、もちろんこれは、スクリプトの実行中にダイアログ/シーンが「ハング」することを意味します。制御を取り戻したいのですが、「p」(プロセス) を他のコントローラー部分に渡すにはどうすればよいですか (または、パラメーターを渡す他のプロセスを単純に開始してスクリプトを開始し、スクリプトを開始させます)。 )その後、Sergey Grinevのバインディングを介して自動更新を行います-シーン/ウィンドウを「ハングアップ」することなく?また、ユーザーが要求した場合、この他のプロセスを「停止」できますか?

これが私の現在のコードです(スクリプトを実行するのに20〜40分かかります!完了するまで「待機」します。これは私が望んでいるものではありません。ユーザーに制御を返したいです):