問題タブ [boxlayout]
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 - この Swing の動作はバグですか? 謎の BoxLayout 配置
Java Swing レイアウト用のWindowBuilder Proをいじってみたところ、いくつかの奇妙な動作に遭遇しましたが、最終的に SSCCE にまで減らすことができました。以下のソースコードを検討してください。
次のレイアウトが得られます。
なんらかの理由でpanel_1
、緑の が右に浮いています。コード内のいくつかのパラメーターをいじってみると、緑色のパネルの左側のギャップを完全になくす方法が 2 つしか見つかりません。
- コンストラクターの
hgap
andを 0vgap
に変更します。panel_2
また
- を (0,0) に
minimumSize
変更します。panel_2
これらのいずれかを実行すると、次のようになります。
さて、問題は、いったいなぜ、minimumSize
またはhgap
for のいずれかが、その親の左側までいっぱいになるのを防ぐことに関係があるFlowLayout
のでしょうか? in に0 より大きい値と 0 より大きい値が必要な場合はどうすればよいでしょうか? では、 inの左側のギャップをどのように解消できますか?panel_2
panel_1
minimumSize
hgap
FlowLayout
panel_2
BoxLayout
panel_1
に何をしても、panel_1
親コンテナの幅全体を埋めることはできません(panel_2
上記のように編集しない限り)。皮肉なことに、alignmentX
forpanel_1
をに設定するとRIGHT_ALIGNMENT
、実際には左に浮きます。しかし、ギャップはまだ存在します (ちょうど今右側にあります)。コンテンツを埋めpanel_1
てサイズを大きくすると、右側のギャップはどんどん小さくなりますが、完全になくなることはありません。
これは が の場合だけでなく、他の多くの型でも発生しpanel_2
ます... 通常はパラメーターを持たない型です。つまり、 の左側のギャップを修正する唯一の方法は、新しいコンテナが 0 になりましたが、これもばかげていて関係がないように見えます。最も重要なことは、私の設計意図ではない可能性があることです。FlowLayout
JScrollPane
hgap
panel_1
minimumSize
java - BoxLayoutの垂直方向のギャップを小さくするにはどうすればよいですか?
行に垂直BoxLayoutおよびFlowLayoutJPanelsを使用する次のフォームがあります。
各行間の大きなギャップを小さくするにはどうすればよいですか?これは私のコードです:
java - BoxLayout が上にくっつく
BoxLayout マネージャーをいじり始めたところです。
2 つのボタンを並べて作成しました。3 つ目のボタンは次の行 (最初の 2 つの下) に移動し、最初の 2 つのボタンはフレームの上部に配置する必要があります。
どうすればこれを達成できますか?
これは私の現在のコードです
java - ボックス レイアウトが機能しない
Java Swing レイアウトの新機能。よく読んだ結果、私にとって最適なレイアウトはボックス レイアウトだと思います。私の JDialogBox には JTabbedPane があります。JTabbedPane には、4 つの JPanel があります。pnlDivision と呼ばれるこれらのパネルの 1 つをレイアウトすることに焦点を当てています。
このパネルにやりたいことは、一連のスクロール可能なパネルを追加することです。パネルは互いに垂直に積み重ねられ、それぞれが 1 行で構成されます。各パネルには、水平に配置されたラベルが含まれており、ユーザーはそれらのラベルを選択して編集できます。
現時点では、タブ付きパネルに何も表示されません。最初に基本に焦点を当てると、単一のスクロール可能なパネルと単一のラベルを含む、ボックス レイアウトのセットアップのアイデアを得るために、次のコードがあります。しかし、私のタブ付きパネルはまだ空白です。この基本的なコードの何が問題なのか、誰にもわかりますか? これについて多くのリソースを読みましたが、行き詰まりを解消できません。
どうもありがとう !
編集:
これは、タブ付きパネルを設定するコードです。IDE (NetBeans) を使用したので、これは NetBeans によって生成されます。この問題に関連する行のみを抜き出しました。明らかに不足している行がある場合は、お知らせください。
java - BoxLayoutでJLabelをJScrollPaneに揃える
JLabelとJScrollPane(JTextAreaを含む)をJPanelの左側に配置しようとしています。JTextAreaをパネルに直接配置すると、配置は正しくなります。JTextAreaがスクロールペインにある場合にのみ、配置が正しくありません。
下の最初の画像はスクロールペインありで、2番目の画像はスクロールペインなしです。スクロールペインを正しく配置するにはどうすればよいですか?
java - ボックスレイアウトに「上から下」と「右から左」はありますか?
フレームで右から左、上から下に描画するテーブルがいくつかあります。今は絶対レイアウトを使ってコーディネートをしています。それを実行できるJavaレイアウトはありBoxLayout
ますか?テーブルの数は動的であることに注意してください。
2番目の質問は、これらのテーブルをフレームにドッキングするにはどうすればよいですか?つまり、フレームのサイズを変更しても、テーブルは画面上の位置を維持します。
html - div マージンまたはパディングを含む CSS Fluid レイアウトでオーバーフローが発生する
最も外側のラッパー div の幅が 100%のjsfiddleがあります。内容が左から 40px で始まる内部 div(tb_margin または tb_padding) を作成したいと考えています。この 40 ピクセルの左間隔を作成するために、マージンとパディングの両方を試しましたが、どちらの場合も、実際の div は幅 100% のために右側からはみ出しています。
タブを a div (tb_margin または tb_padding) に含める必要があります。これは左から 40 ピクセルのオフセットですが、右の境界線まで幅いっぱいまで伸ばす必要があります。
タブが多すぎるとタブが非表示になるため、overflow:hidden を (tb_margin または tb_padding) に配置したくありません。理想的には、タブは (tb_margin または tb_padding) に含まれる次の行にラップする必要があります。
CSS ボックスのレイアウトがもっと直観的であってほしいと切に願っています。
java - BoxLayout.X_AXIS の JPanel の EmptyBorders
画像を描画するために paintComponent メソッドがオーバーライドされるカスタム JPanel があります。
これらのカスタム パネルのいくつかをコンテナの垂直方向の中央に挿入したいと考えています。これを行うために、レイアウト マネージャーとして BoxLayout.X_AXIS を使用して jpanel を作成しました。
これはうまく機能し、私が望むものを示していますが、カスタム パネル間にマージンを追加したいと考えています。
EmptyMargins は単に無視されます。トリッキーな部分は、コンテナーのすべてのコンポーネントを取得するループから各カスタム パネルを取得する必要があるため、ストラットまたはボックスをそれらの間に追加できない (または追加したくない...) ことです。それらを CustomPanel にキャストします。
問題を参照してください。パネル間にストラットを追加すると、キャスト例外が発生し、EmptyBorders が機能しません...どんなアイデアも歓迎します!
注: 他のレイアウト マネージャーの提案も受け付けています。;-)
コードは次のとおりです。
java - コンポーネントを動的に追加するBoxLayout(2列)
テキスト フィールドmin 1 max 12を追加できる JPanel を作成したいと考えています。(そのため、6 行 2 列で 12 個のテキスト フィールドを格納するのに十分なスペースがある JPanel を作成することにしました)。ユーザーがチェックするチェック ボックスの数によって異なります。さらに、これらのテキスト フィールドは、この JPanelで左端揃えで上から下に表示される必要があります。そして、これらのチェックボックスの 1 つがオフになるたびに、指定されたテキストフィールドが JPanel から削除され、残りはこの空のスペースに移動します (スペースをカバーするために上にシフトします)。
ということで、最初からすべて作成せず、必要に応じてテキストフィールドを作成し、setVisible(false) にします。これはより良い解決策だと思います。
例えば:
(そして、このボタンがどこに表示されたかは気にしません。重要なことは、このボタンは、このパネルの既存のボタンの後に表示される必要があるということです)
私が得るもの
JPanel の下部に十分なスペースがない場合、LM はこのテキスト フィールドを上から次の列に追加する必要があります。この例では、別の (7 番目の) テキスト フィールドを追加しようとした 6x2 で、この列に十分なスペースがない場合、2 番目の列に表示されるはずですが、そうではありません。BoxLayout を使用すると、7 番目のテキスト フィールドが JPanel 上に半分、上半分に表示されました。
私は何をすべきか?Layout Manager を変更しますか、それとも JPanel の境界を越えることを許可しないオプションがありますか? (これが一番重要)
私はこれを取得します: 、そしてこれが欲しい:
(言語については申し訳ありません - 初めてです)
- - 編集 - -
誤解がある場合:これを正しく理解させてください。TextField (この例では 7 番目) を追加するスペースがない場合に行を「スクロール」するのに役立つメソッド/オプションを別の LM で探しています。移動する必要があります。 TOPの次(列)へ。2 列は定義していませんが、この JPanel の領域は、JTextField の 2 列を保持するスペースがあったように思わせます。たとえば、12 個のフィールドすべてを追加して削除すると、残りの 2 番目のフィールドが上に移動して、このスペースをカバーする必要があります。
java - BoxLayoutのJButtonのサイズを変更する
ゲーム用のシンプルなメニューを作ろうとしています。中央に4つのボタンがあり、少し大きくして中央に配置したいと思います。
JButtons
最後の部分は機能しましたが、自分のいずれにも電話をかけたり、.setSize
/を実行したりすることができないようです.setPreferedSize(new Dimension())
。