問題タブ [layout-manager]
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 - JFrame に 3 つ以上のパネルを含めますか?
同じ JFrame に 3 つ以上の Panel を含めることで問題が発生したプロジェクトに取り組んでいます。
コミュニティは、これを実装するための例を示したり、Java Swing のニーズに関連する優れたチュートリアルやガイドを参照したりできますか?
java - ベスト プラクティス ガイド: Swing
Swing 関連の GUI ガイドラインを知っている人はいますか?具体的には、Swing アプリの設計方法と、どのコンポーネントを使用する必要があるかについてです。私は公式の基準を探しているわけではありませんが、自分のプロジェクトに適切な基準を設定するために使用できる実用的なヒントを探しています。
私は自分で Swing をあまり使用していません。確かに、GUI デザイナーで GUI をクリックすることは大したことではありません。ただし、Swing の経験があり、何を避けるべきかを知っている人から洞察を得たいと思います。Swing は最近 (Java 6-10 で) 適切な変更を行いました。そのため、現在のところ、特定の標準化はあまりありません。
java - Java Swing BoxLayout の JTextFields が拡張されないようにするにはどうすればよいですか?
私は次のJPanel
ようなものを持っています:
私の問題は、JTextField
sが垂直に巨大になることです。ユーザーが入力できるのは1行だけなので、高さは1行だけにしたいです。ボタンは問題ありません (垂直方向に拡張しません)。
JTextField
s が拡大しないようにする方法はありますか? 私は Swing にかなり慣れていないので、ひどく間違ったことをしている場合はお知らせください。
java - Swing レイアウト - コンポーネントの寸法を維持しながらグリッドを使用する
アプリケーションのログイン バーを作成したいのですが、一連の JLabels と JTextField を整理して、これらの同じコンポーネントを各セルに合わせてサイズ変更せずに水平グリッドに整理する方法がわかりません。また、コンポーネントのグループが特定の幅以下にサイズ変更されないようにしたいと考えています。これはどのように達成できますか?
編集:回答ありがとうございます。MigLayout と SpringLayout については後で見ていきます。時間の制約により、Visual Editor で間に合わせ、null レイアウトを使用する必要があります。コンポーネントの配置と寸法は手動で調整する必要がありますが、少なくともそのままです。これが私がやりたかったことを示す写真です。
java - Java SwingでJTextFieldsの幅を制御するにはどうすればよいですか?
1つの行に複数のJTextFieldを配置しようとしていますが、同じ幅にしたくありません。幅を制御して、一部を他よりも広くするにはどうすればよいですか?それらを合わせて全幅の100%を占めるようにしたいので、なんらかの重量物を使っていただければと思います。
試してみまし.setColumns()
たが、意味がありません。
これは、列のように表示される3つの文字列を持つ3つの行を使用している例です。
java - 印刷可能なJavaSwingコンポーネントを「pack()」するにはどうすればよいですか?
を実装するJavaSwingコンポーネントを実装しPrintable
ました。コンポーネントをJFrameに追加し、JFrameで実行this.pack();
すると、完全に印刷されます。ただし、コンポーネントをJFrameに追加しないと、空白のページだけが印刷されます。
このコードは素晴らしいプリントアウトを提供します:
しかし、このコードは空白のページを提供します:
this.pack();
それが大きな違いだと思います。pack()
JFrameに追加せずに、印刷可能なコンポーネントを正常に印刷するにはどうすればよいですか?パネルはいくつかのLayoutManagerを使用しています。
試してみましたが、機能p.validate();
しp.revalidate();
ません。助言がありますか?または、コンポーネントを印刷する前に、非表示のJFrameに追加する必要がありますか?
更新:実行すると、p.doLayout();
一部のパーツは印刷されますが、サブコンポーネントは印刷されません。そしてのドキュメントからdoLayout()
:
このコンテナにそのコンポーネントを配置させます。ほとんどのプログラムは、このメソッドを直接呼び出すべきではありませんが、代わりにvalidateメソッドを呼び出す必要があります。
しかし、私のために働いていませp.validate();
ん。
java - JLabelのアイコンを右揃えにする方法は?
アイコン付きのJLabelの場合setHorizontalTextPosition(SwingConstants.LEADING)
、ラベルの幅に関係なく、アイコンはテキストの直後に描画されます。
各アイテムのテキストの長さに応じてアイコンがいたるところに表示されるため、これはリストにとって特に悪いことです。
コードをトレースしたところ、SwingUtilities#layoutCompoundLabelImpl
では、テキストの幅は単純にに設定されてSwingUtilities2.stringWidth(c, fm, text)
おり、アイコンxはラベルの幅を考慮せずにテキストの後に続くように設定されているようです。
最も単純なケースは次のとおりです。
ラベルは常にフレーム全体に表示されますが、アイコンは配置されたままであることがわかります。両方の引数をに設定すると、ミラーの問題が発生しますTRAILING
。
UIをオーバーライドしたり、JPanelなどを使用したりできることはわかっています。JLabelに単純なものが欠けているのではないかと思います。そうでない場合は、Javaのバグのようです。
参考までに、これはWindowsXPではjdk1.6.0_06です。
java - GridBagLayoutを使用した独占ボードの構築
空き時間にJavaバージョンのMonopolyを構築していて、Swingのレイアウトなどを理解するのに問題があります。
ボード上の私のスペースのそれぞれは本質的にカスタムJButton
であり、私はそれらをフレームの端の周りに配置しようとしています(独占ボード自体のように)。レイアウトシステムがどのように機能するかについての有用な説明が見つからないようで、問題があります。
フレームの端にボタンを配置する方法の例を教えてください。別のレイアウトを使用する必要がありますか?
layout-manager - カスタム draw2d レイアウトマネージャーを構築するには?
次のように 2 つの要素を配置できるレイアウト マネージャーが必要です。
1 つの主要な要素 ABCDEF を中心に配置
カプセル化された図の右上隅に配置された 1 つの "postscript" 要素 XYZ
例えば:
これに既存のレイアウトマネージャーを使用できますか? それをサポートするカスタム レイアウト マネージャーを構築するにはどうすればよいですか?
アドバイスありがとうございます。
java - Java Swing でのコンポーネントの配置
おやおや、あなたに会いませんでした。Javaでラベル、パネル、およびボタンをフォーマットするより効率的な方法があるかどうか疑問に思っていました。これが私のコードです。ようこそ、日付、ボタンをすべて別の行に配置したいと思います。そうする唯一の論理的な方法は、空白のラベルを作成することですよね?