JPanel をメイン パネルとして使用して、ユーザーに情報を表示しています。
メソッドを使用して、他に 3 つの JPanel を作成しました。titlePanel、verbiagePanel、closeButtonPanel。これらの各メソッドはコンポーネントとして割り当てられ、メイン パネルに追加されます。メインパネルと他のパネルで BoxLayout を使用しています。
Component titlePanel = titlePanel();
Component verbiagePanel = verbiagePanel();
Component closeButtonPanel = closeButton();
this.setTitle("EDI - Help Page");
//this.setResizable( false );
centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.PAGE_AXIS));
centerPanel.setPreferredSize(new Dimension(700, 300));
centerPanel.add(titlePanel, BorderLayout.NORTH);
centerPanel.add(Box.createRigidArea(new Dimension(0, 10)));
centerPanel.add(verbiagePanel, BorderLayout.CENTER);
centerPanel.add(Box.createRigidArea(new Dimension(0, 2)));
centerPanel.add(closeButtonPanel, BorderLayout.SOUTH);
getContentPane().add(centerPanel);
this.pack();
その上にメインパネル メソッド。ダイアログをコンパイルして実行すると、verbiagePanel 以外はすべて正しく表示されます。親パネルと他の 2 つのパネルの半分のサイズです。
これが私の verbiagePanel のコードです
private JPanel verbiagePanel() {
String titleText = "<html><font size=4><b><center>How To Use This Application</b></center></font></html>";
String text = "<html>" +
" <P align=left><font size=3>" +
" 1. Add a data to the list of Selected Datasets.<br/>" +
" (see below for detailed instructions on adding datasets)<br/>" +
" 2. Select the project to send data to.<br/>" +
" 3. Adjust the list of selected 3D or 2D translators if desired.<br/>" +
" 4. Use the Send button to continue the EDI transaction." +
" </font></P>" +
" </html>";
JLabel titleLabel = new JLabel(titleText, JLabel.CENTER);
titleLabel.setBorder(BorderFactory.createLineBorder(Color.black));
JLabel bodyLabel = new JLabel(text, JLabel.LEFT);
bodyLabel.setBorder(BorderFactory.createLineBorder(Color.black));
JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(titleLabel);
p.add(bodyLabel);
p.setBorder(BorderFactory.createLineBorder(Color.black));
return p;
}
面白いのは、BoxLayout を Panel から削除した場合です。パネルは、他の 2 つのパネルと一致するように拡張されます。しかし、ラベルの間隔は狂っています。パネルに少なくとも 5 つのラベルが表示されることになります。わかりやすくするために、現在は 2 つだけを表示しています。