setHorizontalGroup()
とsetVerticalGroup()
が呼び出された後で、レイアウトをリセットせずにGroupLayout
のグループに動的にComponent
を追加できますか?私は、GUIを使って、毎週のクラススケジュールをまとめる最良の方法を見つけるのに役立つプロジェクトに取り組んでいます。これは、未知数のクラスについて、クラス時間等に関する情報を入力することを含む。もちろん、ユーザーに情報を入力するためのフォームを任意の数だけ任意に追加することはできません。「誰もこの数のクラス以上のものを検討することはできません」と言うと、ユーザーは新しいフォームを追加する必要があります。彼ら自身。フォームを作成することはできますが、setHorizontalGroup(...)
またはsetVerticalGroup(...)
を再呼び出しすることなく、ウィンドウ内のGroupLayout
に追加する方法が見つかりません。これは、前のGroup
を追加するのではなく、上書きします。 これは私が現在、(読みやすさのためにコメントし)したコードの関連部分である:コンポーネントをGroupLayout内のグループに動的に追加できますか?
private static void createAndShowGUI() {
//Create window and assign an empty GroupLayout to it
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GroupLayout layout = new GroupLayout(frame.getContentPane());
frame.getContentPane().setLayout(layout);
/*WeekPanel extends JPanel, and is the "form" the user enters data into.
In essence, it's a JPanel with a series of JTextFields.*/
WeekPanel panel1 = new WeekPanel();
WeekPanel panel2 = new WeekPanel();
//The layout code below places two WeekPanels in the window, one on top of the other
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addComponent(panel1)
.addComponent(panel2)));
layout.setVerticalGroup(layout.createSequentialGroup()
.addComponent(panel1)
.addComponent(panel2));
/*I would like to add a component to the layout here as proof of concept.*/
frame.pack();
frame.setVisible(true);
}
私はちょうどframe.pack()
前frame.add([some component])
を呼び出して試してみたが、それは目に見える違いはありません。私はGroupLayoutの公式ドキュメントを見てきましたが、水平/垂直Group
をGroupLayout
に、またはそれを参照するフィールドにアクセスしたり変更したりする方法はありません。その点についてはGroup
を参照してください。 私はここで何をすべきかについて完全に迷っています。可能であれば、新しいタイプのLayout
を学ぶのを避けたいですが、私は私がやろうとしていることを恐れ始めています(あるいは、さらに悪いことに、私がやろうとしていることはまず不可能です) 。
*「これは、クラスの数が不明のためなど、クラスの時間に関する情報を入力する必要。」* 'JTable'のための仕事のようですね。 * "私はすべての可能な場合に新しいタイプのレイアウトを学ぶのを避けたい" *レイアウトの数や結合方法を理解する必要があります。重要ではないGUIベースのアプリケーションを完成させる。 (情報の大部分が 'JTable'で表示されていても)。 –