問題タブ [grid-layout]
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 - Java Swing - JPanel と GridLayout のマージン/パディング
私は Java でチェス ゲームを作成する作業を行っていますが、現在、Swing で GUI を思いどおりに作成するのに少し苦労しています。私は を使用してGridLayout
8x8ChessButton
のグリッドを整理しています (これは をオーバーライドしてJButton
、座標などの追加情報を内部に保存できるようにします)。もともと、ChessButton
s はマウスオーバーしないと表示されませんでしたが、それぞれChessButton
を別々の中に配置しJPanel
、各ボタンsetPreferredSize()
を設定された高さと幅に設定することで、その問題を解決しました。
さて、私の問題は、各ボタンの上(および/または下?)に小さなマージンまたはパディングがあるように見えることです。に と を設定setHgap(0)
しsetVgap(0)
たことを確認しGridLayout
たので、謎のマージンはボタンまたはJPanel
s のいずれかから来ていると確信しています。しかし、私はそれらを取り除くことができないようで、ChessButton
マウスでマウスを動かすたびに、それぞれが少し上下にシフトしているようです。
この問題の説明は視覚化するのが少し難しいかもしれないことを認識しているので、スクリーンショットを撮りました ( JButton
s ではなくChessButton
s を使用して、ギャップがわずかに認識しやすいようにします): http://img3.imageshack.us/img3/ 6656/jbuttonmargins.png
それぞれを初期化するために使用したコードは次のChessButton
とおりです。
では、ボタン間のこれらの垂直方向のスペースを取り除くにはどうすればよいでしょうか? 私はSwingに比較的慣れていないので、答えが非常に明白である場合は申し訳ありませんが、誰かが提供する必要がある助けをいただければ幸いです! 前もって感謝します!
java - GridLayoutでグリッドを更新
JPanelのGridLayoutを介してレイアウトされたオブジェクトの配列があります。配列内のインデックスにオブジェクトを再作成し、これを反映するようにGridLayoutを更新できるようにする必要があります。今のところ、GridLayoutを「更新」または再描画する方法が見つかりません。GridLayoutまたはJPanel全体を作成せずにGridLayoutを更新することは可能ですか?JFrameにアクセスできないと仮定します。
wpf - テンプレートを介して作成された個別のグリッドを列/行に沿って整列させる方法は?
この場合、絵は千の言葉に値すると思います:
XAML:
ps - 最初の列に特定の with を設定したくありませんが、必要な最大値を指定します。
更新: ColinEのリンクを試して、これを行いました:
しかし、それは私にはうまくいきませんでした。
java - Java Swing レイアウトを使用して一部のコンポーネントをきれいにインデントするにはどうすればよいですか
Swing を使用して、チェックボックスまたはラジオ ボタンの下にあるコンポーネントをインデントする最良の方法は何ですか? 「メイン」チェックボックスの下にいくつかのチェックボックスがインデントされている、Firefox 3.6 の [オプション] -> [プライバシー] ダイアログのスタイルで何かを作成する必要があります。GroupLayout を含む標準の AWT/Swing レイアウトを使用できます。JGoodies FormLayout も利用できます。最初は FormLayout で setLeadingColumn オフセットを使ってみたのですが、セパレーターの下でインデントしないと上手くいかないようでした。たぶん私はそれを間違ってやっていましたか?
SWT GridLayout の horizontalIndent 設定のようなものはありますか? それは完璧でしょう。
私はJDK1.6.0_23で作業しています。
wpf - WPFにRowSpan="All"はありますか?
GridSplitter
グリッドにある3つの行に次のように作成します。
ただし、後の段階でグリッドに別の行を追加する可能性があるため、戻ってすべての行スパンを更新したくはありません。
私の最初の推測はでしたがGrid.RowSpan="*"
、それはコンパイルされません。
java - java、swing、グリッドレイアウトの問題
GridLayout のパネルがあります
しかし、プログラムを実行しようとすると、100 個のボタンのうち最初のボタンしか表示されません。さらに、残りはカーソルを上に移動したときにのみ表示されます。どうしたの?
これがクラス全体です(Life.CELLS = 10およびCellButtonはJButtonを拡張するクラスです)
これはCellButtonのコードです
java - GridLayoutでJPanelの位置/インデックスを取得しますか?
私は MVC 設計に従おうとしていますが、現在 Controller クラスで MouseAdapter を作成しています。モデル クラスの 1 つに GridLayout と同じサイズの配列があります。したがって、誰かがグリッド内のどこかで JPanel をクリックすると、MouseAdapter がモデルに通知して何かを実行します。JPanels は別のクラス View にあります。
しかし、そのためには、その特定の JPanel のインデックス/位置が必要です。それを取得する方法はありますか?
MouseEvent の GetX および GetY メソッドをチェックアウトしました。
GetX - ソース コンポーネントに対するイベントの水平 x 位置を返します。
Get Y - ソース コンポーネントに対するイベントの垂直方向の y 位置を返します。
ソースコンポーネントに対して、JPanel の左上隅が 0, 0 ということですか? では、GridLayout のどのパネルがクリックされたかを知るにはどうすればよいでしょうか?
java - gridLayout からボタンを取得する
gridLayout 内に要素がある場合、そのオブジェクトへの参照を取得できますか? はいの場合、どの関数を使用する必要がありますか? gridLayout 内のオブジェクトに対していくつかのアクションを実行することは良い考えですか? または、別のより良い言語イディオムがありますか?
java - Java の GridLayout ヘルプ
次のコードを持つ JPanel があります。
JTextField が GridLayout で 2 つのスペースを占有するようにするにはどうすればよいでしょうか。2 つのボタンが同じ行でそれぞれ 1 つのスペースを占有して行を共有するようにするにはどうすればよいでしょうか。
java - Java: GridLayout は、サイズ変更が完了する前に layoutContainer を呼び出します
GridLayout Manager を使用したコンテナーを備えた単純な GUI があります。JComponent から継承する 2 つのコンポーネントを追加し、paintComponent を使用して画面にいくつかのものを描画します。
ここで、GridLayout Manager を使用して GUI のサイズを変更するために componentListener を追加しました。サイズ変更後、2 つのコンポーネントはまだ小さいので、サイズ変更しません。
メソッドlayoutContainerが親コンテナから取得しているサイズを印刷するGridLayoutの単純なコピーを作成して、親が新しいサイズを持っているかどうかを確認することでこれを確認しました(サイズ変更イベントの後)。小さな変更でまだ小さいサイズで印刷されますが、正しいサイズではありません。
layoutContainer のサイズを出力し、単純なタイマーを使用して毎秒親 GUI のサイズを出力します。
Timer が正しいサイズ (1600x1099) を出力する前に、GridLayout Manager の layoutContainer が古いサイズで呼び出されることに気付きました。
行と列の構成に従って、GridLayout は常にすべてのコンポーネントのサイズを自動的に変更していると思いました。しかし、そうではないようです。layoutContainer メソッドが呼び出されるのが早すぎます。
GridLayout Manager を使用してこれを正しく行う方法はありますか、または自分でコンポーネントのサイズを変更する必要がありますか?
LayoutManager で layoutContainer メソッドを呼び出すタイミングと内容を確認するにはどうすればよいですか?
正しくサイズ変更されるモジュールのコードを次に示しますが、サブクラスであるそのサブコンポーネントは正しくサイズ変更されません (コードが多すぎないことを願っています)。
情報: このモジュールに必要なすべてのクラスを 1 つの Java ファイルに記述したので、必要なものはすべて 1 つの Java ファイルに含まれています。