問題タブ [miglayout]
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 - MigLayout の幅 - セルまたはコンポーネント?
ドキュメントからはわかりません-セル幅を示すとき
セルまたはセル内のコンポーネントに対して min:pref:max 幅を要求していますか?
java - MigLayoutの縮小動作
以下に定義されているJPanelを使用します(JSplitPaneのJTabPanelに埋め込まれています)。
最大化すると、パネルは新しい寸法に正しく再描画されます最小化すると、パネルは前の寸法に再描画されませんコーナーをドラッグしてサイズを大きくすると、パネルは正しい寸法に再描画されますコーナーをドラッグしてサイズを小さくすると、パネルが期待される寸法に再描画されない
最大化してから最小化すると、画面が元の構成に再描画されることを望んでいます(そして期待しています)。私は何が欠けていますか?重要な場合は、すべてのJTextAreaフィールドが真の行折り返しです。
編集:
これはもっと簡単な例です-問題はラインラップが設定されたJTextAreaにあるようです。JFrameの次のコードは、問題を再現します。
java - JTable に列のタイトルが表示されない
GUI を使用するのはこれが初めてなので、何が問題を引き起こしているのか正確にはわかりません。大学からの課題があります。このプロジェクトは、さまざまな目的のために一種の「製品管理」プログラムを作成することです。GUI 以外はすべて完了していますが、ここでJTable
列のタイトルが表示されない理由がわかりません。コードは次のとおりです(ところで、MIGLayoutを使用)
swing - JScrollBar オブジェクトに含まれる JTable オブジェクトによって混乱する MigLayout
JScrollPane オブジェクトに含まれる JTable オブジェクトによって MigLayout が混乱するようです。JScrollPane 内に JTable を持つことは一般的なイディオムのように思われるので、その理由を見つけることが重要だと思いました。
添付のプログラム例では、12 行 4 列からなる簡略化されたフォームが作成されます。すべての幅と高さはパーセンテージで設定されます。多数のコンポーネントがフォームに追加されますが、すべてセルの位置によって行われます。行または列にまたがるものもあります。最後の列には、セル行のインデックスとサイズのパーセンテージが表示されます。
プログラムが引数「JLabel」で開始された場合、JSCrollPane に含まれる JLabel が列 0 に追加され、すべての配置が適切に表示されます。プログラムが引数「JTable」で開始されると、すべての列の行サイズが乱れます。
これはバグですか、それとも機能ですか?
注: 以下のコードが難読化されている (タブがない) ように見える場合は、さまざまな貼り付け方法を試しましたが、プレビューが正しく表示されませんでした。それを修正するために私にできることがあれば教えてください。
java - JavaMiglayoutギャッププッシュが期待どおりに機能しない
MiGレイアウトを使用して、このサンプルのようなレイアウトを実現したいと思います。したがって、最後のJButtonはJFrameの下部にあります。
私の問題は、追加したいJButtonの数が可変であるため、MiGレイアウトで行定義を使用できないことです。そこで、このコード(およびいくつかの派生)を試しました。
しかし、残念ながら、これは期待どおりに機能しません。
助言がありますか?前もって感謝します。
java - MigLayoutを使用してセル全体を2つのコンポーネントで埋める
MigLayoutの同じセルに両方を入力したい2つのコンポーネントがあります。
たとえば、両方のコンポーネントに次のような制約を与えたいと思います。
両方を内側に正確に重ねて配置しますcell 0 0
(上記のコードを使用すると、セル内でスペースを並べて共有することになります)
これを実現するには、 MigLayout制約に何を追加する必要がありますか?
java - MigLayout の push、grow、fill の違いは何ですか?
私はそれを見て、オプションの重み付けパラメーターgrow
を受け入れますが、それとは別に、 、、およびpush
の本当の違いは何ですか? ドキュメントはそれについてあまり明確ではありません。grow
fill
push
jtable - タブ付きページ内の JScrollPanes 内の MigLayout と JTables
恩返しの精神で、次の実装済みコンポーネントを提出します。このコンポーネントはクライアントの要件を満たしているので、私はそれ自体で助けを求めているわけではありません。しかし、このコンポーネントは、他の人に役立つかもしれない興味深い機能を提供します。
また、明らかに必要なハックについていくつかの疑問が生じます。私の実装は必要以上に恐ろしく複雑である可能性があります。提案された代替ソリューションは、他の人にも役立つ可能性があります。
簡単に言えば、データの大きなテーブルが複数の JTables に分割され、各ページに 1 つのマルチタブ JTabPane が含まれます。
プログラムを実行してさまざまな方法でサイズを変更すると、コンポーネントがどのように動作するかがわかります。明示的に、要件は次のとおりです。
さまざまな数のレコード (1 ~ 500) を含む表形式のデータセットが表示されます。
JTabbedPane には 1 つ以上のタブが含まれ、それぞれに JScrollPane のみが含まれます。
JScrollPanes は垂直スクロールバーを持つことはできませんが、水平スクロールバーを持つことはできます。
各 JScrollPane には JTable が含まれています。
JTabbedPane には、すべてのデータ行をまとめて JTables に含めるのに十分なタブが常に存在します。
JTabbedPane のサイズは、アプリケーションの JFrame のサイズによって異なります。
アプリケーションは、マウスでドラッグして自由にサイズを変更できます。
初期化時、およびアプリケーションのサイズが変更されるたびに、すべてのレコードを保持するのに十分なタブ ページで JTabbedPane が再構築されます。たとえば、100 レコードの場合、特定のパネル サイズでタブのテーブルが 8 レコードを保持できる場合、13 個のタブが作成されます。
JTabbedPane のサイズが小さすぎてすべてのデータ行を保持するのに必要なタブの数を保持できない場合、何も表示されません (または警告のみが表示されます)。
Java、MigLayout、およびそれらの相互作用に学術的な関心を持っている人は、次の 4 つの点を検討することをお勧めします。
ソース コードのある時点で、次の関数呼び出しがあります。
tb = tabbedPane.getBoundsAt(0);
ハックです。私には、この召命が地上でどんなに必要とされているかわかりません。それでもそれ(または何か)が必要です。
理論的には、ScrollPane.getViewportBorderBounds() はタブ ページのテーブル サイズを計算するための情報を提供するはずですが、代わりに値をハックする必要があります。私は間違っていますか、それとも使用している場所で誤った情報を返していますか?
paint()、repaint()、validate()、invalidate()、revalidate()、update() など、当惑するような一連の関数があります。特定の関数を適切なタイミングで呼び出す必要があることがわかりました。呼び出しの順序は、常に明らかであるとは限りませんが、多くの場合、非常に重要です。この一連の関数は、AWT、Swing、および相互の相互作用に関する厳密でありながら明確なドキュメントを実際に使用できます。一般的なレイアウト マネージャーとのやり取り、特に MigLayout とのやり取りについても説明が必要です。
私が使用したアプローチよりもはるかに単純な、汎用 Java を使用した要件に対する解決策はありますか? トラクターの踏み板にするためだけに車輪を再発明したのでしょうか?
メイク: javac -classpath ScrollTableTest.java
使用法: java -classpath ScrollTableTest [合計データ行]
java - どのレイアウトがこれを行うことができますか?
次の例に示すように、アプリケーションでいくつかの JLabels をレイアウトしようとしています。
私は常にこのJLabelを真ん中に置き、他のJLabelsの数は1から30まで可変です。適切な数の列/行を選択し、空白にいくつかの空のJLabelsを設定してグリッドレイアウトを試しましたが、私は良い結果を得ることができず、MigLayoutでそれを行う方法を見つけることができません。適切なレイアウトの解決策やその他の解決策がありましたか?
PS : JLabels が円に配置されていることを示すためだけに円を表示したくありません。
java - MigLayoutがこのテーブルセルのサイズをグリッドに合わせて拡大しないのはなぜですか?
以下は、JavaSwingとMigLayoutをメインのレイアウトマネージャーとして使用して作成したGUIのスクリーンショットです。「ゲームボード」は可能な限り最小のサイズを維持していますが、これは望ましくない動作です。JPanel
これを左右に伸ばして欲しいです。
レイアウトが期待どおりに動作しないのはなぜですか?この動作を変更できますか?
メインウィンドウの関連コードは次のとおりです。
最初の3つのコンポーネントにはすべてがありTitledBorder
ます。JPanel
が付いたカスタムメイドのですMigLayout
。