問題タブ [springlayout]
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 - JPanel の SpringLayout preferredSize で正しい値が計算されない
現在は常に (0, 0) であるため、SpringLayout を使用して JPanel の優先サイズを適切に計算する方法がわかりません。に電話してみましたがpanel.setPreferredSize(layout.preferredLayoutSize(panel));
、何も変わりません。また、最も南/東にあるコンポーネントと比較して、パネルの南側と東側に制約(以下のコードでコメントアウト)を配置しようとしましたが、適切な優先サイズが得られ始めますが、JFrameのサイズを変更するとGUIが完全にめちゃくちゃになります(たとえば、一部のコンポーネントがビューの外に移動したり、互いに重なり合ったりするなど)。
これは私に問題を与えているクラスです:
java - 新しいフレームを作成し、SpringUtilities を使用して SpringLayout を使用して装飾する
現在、Spring Utilities クラスが必要な小さなアプリケーションを作成しています。このクラスはコンテンツ ペインであるため「JPanel」を拡張しますが、コンテナを介してレイアウトのタイプを取得する必要がありますが、このクラス/フレームのみが使用されていますEventQueue Exception を返すスプリング レイアウト (クラス = https://docs.oracle.com/javase/tutorial/uiswing/examples/layout/SpringGridProject/src/layout/SpringUtilities.java ) エラー:
これによるものだと思います
「this」は使用できないため、何を使用すればよいかわかりません。
コード:
どんな助けでも素晴らしいでしょう、そして前もって感謝します。
java - ボタンの場所が変な場所に移動する (SpringLayout)
フォームを介して新しいアカウントを追加できる Java アプリケーションを作成しています。見栄えが良いので SpringLayout を使用していますが、JTextFields をテキストとともに追加した後、ボタンは左上に留まりますが、私はSpringUtilitiesを使用しています(https://docs.oracle.com/javase/tutorial/uiswing/examples/layout/SpringGridProject/src/layout/SpringUtilities.java)
これにより、次のようになります。
ただし、ボタンは JComboBox の下に配置し、その JLabel は他のボタンと同じように配置する必要があります。
ここで問題はどこにありますか? しばらくの間、物事を切り替えてきましたが、本当に見つかりません。
java - スプリング レイアウトを設定すると JPanel が表示されない
私はJFrame
3つJPanel
のコンテナを持っています。1つは上に、もう1つは左側にあり、最後のコンテナは中央にあり、フレームの残りを占めています。問題は、サイド パネルに を設定しようとするとSpringLayout
、パネルに表示されないことです。フレームには、デフォルトのボーダー レイアウトがあります。
それは私にとってはうまくいくはずですが、そうではありません。
java - UI-Update 後の SpringLayout のコンポーネントの幅が 0 に等しい
TL;DR 異なる DPI 設定では、アプリケーションのコンポーネントが重複する可能性があります。それを取り除くために、UI を更新した後は常に 0 になるコンポーネントの幅を確認したいと思います。質問の最後に単純化されたコード。
基本的な問題は、異なる DPI 設定では、プログラムのさまざまな部分が最も右側に到達することです。より高い DPI では動的に生成されたラベルであり、より低い DPI では固定幅のテキスト フィールドです。
DPI 設定の変更の可能性に対処するために、SpringLayout を使用しています。上記で説明したように、特定の設定でコンポーネントが重複するという問題があります。
それを克服するために、1 つのコンポーネントの左端が他のコンポーネントの右端より +10 ピクセル離れているかどうかを確認して、より多くのスペースを確保したいと考えました。
問題は、コンポーネントが生成された後にコンポーネントの幅を確認することだと思います。ユーザーは、パネルのコンテンツの一部を変更するさまざまな設定から選択できます。labellist
その領域の右端のラベルが含まれます。
問題の幅と幅チェックを表示する小さなテストプログラムを作成しました。
ボタンを押すと、UI が更新され、下部にもう 1 つのラベルが表示されます。それに応じて SpringLayout が適合し、パネルは後で再検証されます。ただし、幅の出力は 0 です。なぜですか。それに対して何ができますか?