各入力コンポーネント (つまり、JTextField) の上に非表示の JLabelを持つ Java Swing ダイアログがあります。この非表示の JLabel の目的は、入力コンポーネントの検証出力として使用することです。
いくつかのエンティティの説明用の入力フィールドがあり、それは空ではなく、いくつかの特別なものを含む必要があるとしましょう。エラーが発生した場合、アクションは次のメソッドを呼び出すことができます。
private void invalidateDescription(String errMessage) {
errDescriptionLabel.setText(errMessage);
errDescriptionLabel.setVisible(true);
descriptionTextField.setBackground(ERR_COLOR);
}
その後、電話pack()
して、invalidate()
問題は、JDialog の垂直方向のサイズが同じままであるため、一部のコンポーネント (ダイアログの下部にあるボタン) が (ビューの外にあるため) 消えてしまうことです。
それを修正する方法について何か提案はありますか?
よろしくお願いします。
編集:JDialogには「フリーデザイン」レイアウト(Netbeans GUIビルダーのデフォルト)があることを忘れていました。編集 2: (エラー) JLabel のプレースホルダーを必要としないソリューションを探しています。ダイアログのバランスが取れていないため、「空のスペース」は望ましい解決策ではありません。