問題タブ [jgoodies]
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.
java - JGoodiesフォームのデモコード
他のSwingレイアウトと比べて、Formsレイアウトが時間の負荷を節約するという事実を認めなければなりません。http://www.java2s.com/Open-Source/Java-Document/Swing-Library/jgoodies-forms/Catalogjgoodies-forms.htmから他の例を試してみましたが、問題なく動作しました。しかし、私は実際の開発者からのフォームデモコードにもっと興味がありました、それは利用可能ですか?実行可能jarファイル以外にそれらが見つかりませんでした。
java - Netbeans7でjGoodiesフォームレイアウトを使用するにはどうすればよいですか
UbuntuとNetbeans7でJava1.6.0_29を使用しています。NetbeansでjGoodiesフォームレイアウトを使用したいと思います。これを機能させるにはどうすればよいですか?ビルダーGUIで使用するレイアウトマネージャーとして追加しようとしましたが、動作しないようです。
ありがとう...
java - JGoodies ... FormLayout
さて、私は3 JPanel JFrameを取得しようとしています。ここでは、左右のパネルの幅は固定されていますが、垂直方向にサイズ変更でき、中央のパネルは水平方向と垂直方向の両方にサイズ変更できます。
標準のLayoutManagerはひどくて単純に煩わしいので、業界標準であり、簡単に操作できるのはJGoodiesであると言われています。しかし、JGoodiesのウェブサイトの多くのリンクが彼らの例/チュートリアルに関して死んでいるようです。私が読みたくない400ページのPDFがあります。
とにかく、最初のUI_ViewにFormLayoutを実装し始めましたが、問題が発生しました。
java - JGoodiesバインディング+制約:それを達成する方法は?
おそらく簡単な答えがある難しい質問があります(願っています)。
JGoodies Binding を使用して、スライダーをValueModelにバインドしています。よく働く。
チョコレートとキャラメルの購入をモデル化したい次の (不自然な) 状況があり、次の UI インジケーターで $1.00 を持っているとします。
- C1 = 「キャラメル」スライダー = キャラメルキャンディーの予算 = 0 ~ 50 セント
- C2 = 「チョコレート」スライダー = チョコレート菓子の予算 = 0 ~ 50 セント
- C3 = 「変更」スライダー = 残りの残り
制約 C1+C2+C3 = 100 を強制したいので、次のようになります。
- C1 を Δx だけ上下に調整すると、C3 は -Δx だけ調整されます
- C2 を Δx だけ上下に調整すると、C3 は -Δx だけ調整されます
- C3 を Δx で上下に調整すると、C1 は y=-floor(Δx/2) で調整され、C2 は -xy で調整されます
(すべての場合で調整の合計が正確に 0 になるように)
明らかなアプローチは、各 ValueModel にリスナーを追加して、それぞれの場合に特定のアクションを実行することです。しかし、次の 2 つのことを心配する必要があります。
- 循環性 (C1 の変化が C3 の変化を引き起こし、それが C1 を変化させる)
- 同期: 3 つの数値の合計が 100 になるように、完全なセット (C1、C2、C3) にアクセスする手段が必要です。
これどうやってするの?
swing - JGoodies FormLayoutで最小セルサイズと最大セルサイズの両方を指定するにはどうすればよいですか?
サイズが200dlu<推奨コンポーネントサイズ<600dluであることを指定したい
これは基本的な3列のレイアウトで、中央の列が空になることもありますが、非常に長い文字列が含まれることもあります(ファイルパスなど)。
現在、これを列の仕様として使用しています: "pref、max(200dlu; pref):grow、pref"
ただし、中央の列のテキストフィールドのコンテンツが非常に大きい場合、これは実際にはうまく機能しません。画面のサイズを超えて大きくなる可能性があります。画面を大きくしなくても、大画面で大きくなるとばかげてぎこちなく見えます。スクロールバーを使用したくない-列に適切なデフォルトサイズが必要なだけで、ユーザー(実際には私)は、どうしても必要な場合に、厄介なテキストフィールドコンテンツのスクロールメカニズムに対処できます。
言い換えると、-テキストフィールドを非常に小さくしたい場合は、列を200dluにします-テキストフィールドを非常に大きくしたい場合は、列を600dluにします-それ以外の場合は、列をテキストフィールドの推奨サイズ
JFormsDesigner製品のドキュメントは、JGoodies FormLayoutをレイアウトマネージャーとして使用している場合にこれを実行できることを示唆しているようです(ただし、グラフィカルレイアウトマネージャーツールは好きではありません。formlayout言語を使用したいだけです)。
java - 複数行のフローレイアウトの優先サイズを取得する
Swing GUI で一部のコンポーネントのサイズを変更する方法がわかりません。一部のカスタム ラベルが FlowLayout に追加されており、ダイアログのサイズを変更するときに本来の動作をしません。パネルは、jgoodies フォーム フレームワークを使用して構築されています。
これを使用する場合、FlowLayout が xy(3, y) に追加されている場所
FlowLayout が展開され、スクロール バーが表示されます
使用する場合
FlowLayout は使用可能なスペースを使用し、2 行目の項目は非表示になります
FlowLayout を含む各行の高さをコンポーネントの現在の高さに拡張したいと思います。残念ながら、優先サイズは常に単一行の高さに対応します。
別のレイアウトの方が適切でしょうか? 左側の太字のテキストを右揃えにし、その後に FlowLayout を配置する必要があります。
[編集]何週間もこれを行う方法を見つけようとした後、実際の質問は次のようになります
。JPanel に一連のラベルが追加されています。この JPanel は、使用可能なすべてのスペースを水平方向 (ダイアログ サイズからタグ名ラベルの幅を差し引いたもの) を使用し、必要に応じて垂直方向に拡張する必要があります。JPanel の高さがダイアログよりも大きくなると、垂直スクロール バーが表示されます (水平スクロール バーは表示されません)。ダイアログには複数の JPanel を表示でき、それらは次々に (垂直方向に) 表示されます。
GridBagLayout とWrapLayoutを使用した試みを次に示します。
swing - Jgoodies JTable Binding,Swing
Jgoodiesモデルクラスを拡張するjavabeansのリストを取得するスイングを使用したjgoodies Jtableバインディングの簡単な例を誰でも提供できますか。それを行う簡単な例が見つかりませんでした。
前もって感謝します
java - JGoodies がアクション イベントの起動をブロックしている
JTextField に actionListener を追加しました。JTextField は JGoodies によって作成され、バッファリングされます。JTextField の値を変更して Enter キーを押すと、イベントが発生します。値を変更し、フォーカスを失い、戻って Enter キーを押しても、イベントは発生しません。これは他の誰かに起こりましたか?どんな提案でも大歓迎です、私は本当に立ち往生しています...
それに actionListener を追加します。値を変更してEnterキーを押すと機能します。値を変更し、フォーカスを失い、フォーカスを取り戻して Enter キーを押すと、予想外にアクションが起動しません。
java - JGoodiesバインディング、フォーカスが失われた場合のコミットなし、入力されたすべての文字のコミットなし
JGoodies バインディング API ( APIへのリンク) には、 commitOnFocusLost パラメータがあります。
commitOnFocusLost - フォーカスが失われたときにテキストの変更をコミットする場合は true、入力されたすべての文字のテキストの変更をコミットする場合は false
I want the behavior where there is no commit on focus lost and there is no commit while characters are being typed. I only want there to be a commit when I call Bindings.commitImmediatly(). Am I able to do that?
swing - Swing デスクトップ開発
Java デスクトップ GUI アプリケーションに関して非常に一般的な質問があります。
私の経験: ここ数年、私は多数のデスクトップ アプリケーションを開発してきました。一部は Swing のみを使用し、一部は Spring-RCP (これは素晴らしいものでしたが、それでも 3 年以上更新されていないフレームワークに賭けることはできません)もう何年も)。ワルキューレRCPも見ていますが、そこもあまり動きがないように思えます。また、Wicket、Tapestry、そして最近では JSF2 (Primefaces) を使用して Web アプリケーションを開発しました。Web アプリケーションである程度の経験を積んだ私には、Java デスクトップ GUI がずっと前に放棄されたように感じます。もちろん、以前は気付きませんでしたが、Web アプリを開発した後、直接比較すると、デスクトップ UI のプログラミングがいかに面倒で複雑であるかがよくわかります。
私が探しているもの: 私はここでロケット科学を行っていません。私が最も見逃しているのは、次の単純なレイアウトのフォームを構築する簡単な方法です
レイアウトだけの問題ではなく、それがおそらく最小の問題です。まず、入力フィールドの値をある種の「バッキング Bean フィールド」に「バインド」する方法を探しています。また、直接フィードバックを使用したい。つまり、input_a の検証が失敗した場合、feedbackMessage_a にメッセージを表示し、それ以外の場所にはメッセージを表示したくない。3 番目に、この直接的なフィードバックで JSR-303 検証を使用したいと考えています。典型的なデスクトップ アプリケーションのソースコードを掘り下げると、通常、すべてのボタンに巨大なアクション リスナーが表示されます。ここでは、値の割り当て、検証、フィードバック メッセージの作成がすべて手動で記述されています。これをタペストリーや jsf2 のような Web フレームワークと比較してください。そこで行うことは、何らかの式言語を使用して入力フィールドを変数/フィールドに「バインド」することです。それだけです。値が検証されています (例: JSR-303 アノテーションを使用) および (すべての値が有効な場合) バッキング Bean のバインドされたフィールドに自動的に渡されます。また、検証エラーが発生した場合は、入力フィールドの ID を使用して責任のある入力フィールドを識別する検証メッセージが作成されます。その特定の ID のメッセージ コンポーネントが存在する場合、検証メッセージはそこに設定されます。それはただスムーズで論理的です。
デスクトップ GUI に戻ります。たとえば、20 個の入力フィールドを持つフォームに匹敵するユーザー インターフェイスを作成するには、おそらく 500 行ほどのリスナー コードが必要になるでしょう。最初にすべてのテキスト フィールドの値を自分で読み取り、自分で検証して、対応する変数に自分で書き込みます。 . JSR-303 を使用する場合、バリデーターを自分で呼び出すことができますが、対応する入力フィールドに戻ってそこにフィードバック メッセージを設定するのは面倒です。痛いですね。
私の質問: 痛みを和らげる方法はありますか? 最新のデスクトップ アプリケーションをどのように開発していますか? 使用しているフレームワークとその理由は何ですか? webframeworks と同様のバインド方法を使用する可能性はありますか? 上記で説明したように、「直接フィードバック」を実装するにはどうすればよいですか? ここで電車に乗り遅れたのでしょうか、それともここ数年で Web アプリケーションを作成するのが本当に簡単になったのですか? (JavaFxを除いて、それは私には少し役に立ちません)
最後に誤解 しないでほしいのですが、私は Java デスクトップ アプリケーションの大ファンです。私が働いているような中規模の会社では、同種の環境 (すべてのクライアントに同じ Java バージョンがインストールされているなど) があり、Web アプリケーションの利点は実際にはわかりません。webstart を使用すると、アプリケーションは非常に高速に起動します (もちろん、最初にダウンロードを開始した後)。それでも、Java のフロントエンド中心の Web フレームワークが光速で前進している一方で、java-desktop はほとんどまったく動いていないように見えます。私はそのままで暮らすことができますが、私は本当にこの質問をしなければなりません.