2017-05-01 12 views
0

は、私は単純なバイナリツリーのプリンタを持っていますそれはUI上にあるので、JLabelに入れても機能しません。< html>と\ n - > < br>の代わりにフォーマットしようとしましたが、どちらもうまくいきません。それをするの?私はJFormattedTextFieldを試しましたが、うまく動作していないようです。フォーマットのJLabel JTextBox

ありがとうございます。

+0

を使用していることを確認作っている

構造体自体をペイントできるカスタムコンポーネント、または 'JTree' – MadProgrammer

答えて

2

これを実現する方法はいくつかあります。構造をペイントできるカスタムコンポーネントを作成することができます。 JTreeを使用するか、JTextAreaのようなものを使用できます。トリックは、おそらくグラフィカル環境でうまく動作するように起こっているこのようなテキスト表現、代わりに、あなたが考慮するかもしれない固定幅フォント

JTextArea representation

String tree = "│   ┌── K\n" 
     + "│  ┌── F\n" 
     + "│  │ │ ┌── L\n" 
     + "│  │ └── J\n" 
     + "│ ┌── C\n" 
     + "│ │ │ ┌── I\n" 
     + "│ │ └── E\n" 
     + "└── A\n" 
     + " │  ┌── H\n" 
     + " │ ┌── D\n" 
     + " │ │ └── G\n" 
     + " └── B"; 
JTextArea ta = new JTextArea(15, 25); 
ta.setText(tree); 
ta.setFont(new Font("Monospaced", Font.PLAIN, 13)); 
JFrame frame = new JFrame(); 
frame.add(new JScrollPane(ta)); 
frame.pack(); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true);