1

ゲストとタブ付きペインを含む短いプログラムを作成しています。JTabbedPane をプログラムして、特定のタブをクリックすると、ゲストの情報が JComponent の makeTextPanel 関数を使用して表示されるようにします。ただし、実行時に '\n' (改行) を無視するようです。これを修正する方法はありますか?

これは私のGUIです:

JTabbedPane overview= new JTabbedPane();
        JComponent accountinfo= makeTextPanel (guest.toString());
        overview.addTab ("Account Overview", accountinfo);
        overview.setMnemonicAt(0, KeyEvent.VK_1);

JFrame tabbed= new JFrame("AIR Reservation");  
        tabbed.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        tabbed.add(overview);
        tabbed.setSize(500,300);
        tabbed.setLocationRelativeTo(null);
        tabbed.setVisible(true);    

これは、私の Customer クラスの toString メソッドです。

public String toString()
{ 
    customerstring= "Name: " + getName();
    customerstring+= "\nGender: " + getGender();
    customerstring+= "\nDate of Birth: " + getBirthDate();
    customerstring+= "\nPassport number: " +  getPassportNumber();
    customerstring+= "\nBalance: " + getMoney();
    return customerstring;

}

助けてくれてありがとう!編集: makeTextPanel メソッドは次のとおりです。

protected JComponent makeTextPanel(String text) 
{
    JPanel panel = new JPanel(false);
    JLabel filler = new JLabel(text);
    filler.setHorizontalAlignment(JLabel.CENTER);
    panel.setLayout(new GridLayout(1, 1));
    panel.add(filler);
    return panel;
 }
4

1 に答える 1

2

パネルには、引数としてJLabel渡したものをテキストとして持つ が含まれています。makeTextPanelテキストが html 形式のJLabel場合は、複数の行を含めることができます。

したがって、テキストは内部にカプセル化され<html></html>、行区切りは<br>.

他のオプションは、の代わりにJTextAreaまたはを使用することです。必要に応じて、編集不可に設定できます。JEditorPaneJLabel

于 2013-04-04T17:56:54.560 に答える