これは、GridBagLayoutを使用してレイアウトしたものです。
しかし、ファイルを選択すると、いくつかのラベルが入力されることになっています。これらの小さな「...」ボタンを使用してファイルを選択すると、次のようになります。
ご覧のとおり、レイアウト全体が混乱しています。私がactionlistenerで行っているのは、これだけです。
fileTxt = fileChooser.getSelectedFile();
fileTxtField.setText(fileTxt.getAbsolutePath());
labels = getLabels();
lbl1.setText(labels[0].toUpperCase());
Dimension size = lbl1.getPreferredSize();
lbl1.setMinimumSize(size);
lbl1.setPreferredSize(size);
lbl2.setText(labels[1]);
lbl2.setToolTipText(longLbl);
size = lbl2.getPreferredSize();
lbl2.setMinimumSize(size);
lbl2.setPreferredSize(size);
button1.setPreferredSize(new Dimension(20,25));
button2.setPreferredSize(new Dimension(20,25));
したがって、基本的に、ボタンは元のサイズになり、優先サイズではなくなります。これにより、レイアウト全体が台無しになります。これを修正するにはどうすればよいですか?すべてのコンポーネントは、gridBagConstraints.fillのgridbagconstraintがGridBagConstraints.NONEに設定されて満たされないように設定されていますが、レイアウトはまだ混乱しています:(
アップデート
あなたの提案に従って、私はsetPreferredSize()メソッドを呼び出していたコードを削除しました、そしてこれは私が得るものです:
明らかに、これは私が避けたいことです-そのテキストよりも大きいボタンは、ボタンにsetPreferredSizeを設定する理由でした。今、私は何をしますか?