2017-04-11 17 views
0

どうすればJTextAreaをスクロール可能にすることができますか? keysDisplayにはスクロールバーがあり、これを使ってテキスト領域をスクロールすることができます。私はjFramePrint()の未定のコードをスキップしました。SwingでJTextAreaをスクロール可能にする

public class ApplicationViewer extends JFrame { 

    private JTabbedPane tabs = new JTabbedPane(); 
    private JTextArea keyGenDisplay = new JTextArea(); 
    private JTextArea keysDisplay = new JTextArea(); 

    private JPanel controlPanel = new JPanel(); 
    private JButton addNumber = new JButton("Add Number"); 
    private JButton addLetter = new JButton("Add Letter"); 
    private JButton addHyphen = new JButton("Add Hyphen"); 
    private JButton calculateButton = new JButton("Calculate Key"); 

    private JTextField amountField = new JTextField("", 6); 
    private JLabel amountLabel = new JLabel(" Amount of Keys : "); 
    private JScrollPane scroll = new JScrollPane(keysDisplay); 

    public void jFramePrint() { 

     this.setLayout(new BorderLayout()); 
     this.add(controlPanel, BorderLayout.SOUTH); 


     controlPanel.add(addNumber); 
     controlPanel.add(addLetter); 
     controlPanel.add(addHyphen); 
     controlPanel.add(amountLabel); 
     controlPanel.add(amountField); 
     controlPanel.add(calculateButton); 

     this.add(scroll); 

     this.setSize(1400, 900); 
     this.setTitle("Key Generator"); 
     this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

     keyGenDisplay.append("Key Format: "); 
     keysDisplay.append("Keys Here: "); 

     tabs.add("Key Generator", keyGenDisplay); 
     tabs.add("Keys", keysDisplay); 

     this.add(tabs); 
     this.setVisible(true); 

    } 
} 
+0

この投稿をチェックしてください:http://stackoverflow.com/questions/1052473/scrollbars-in-jtextarea –

+0

コードを投稿するときに適切な書式を使用してください。1,2,3のスペースが使用されています。各行の字下げのために、これはコードを読みにくいものにしてくれます。 – camickr

答えて

1
private JTextArea keysDisplay = new JTextArea(); 

あなたのようなものを使用する必要があり、すべてのファースト:テキストエリアには独自の推奨サイズを計算することができます

private JTextArea keysDisplay = new JTextArea(5, 20); 

これを。スクロールバーは、スクロールペインに追加されたときに正しく動作し、5行以上のテキストがテキスト領域に追加されます。

this.add(scroll); 

... 

this.add(tabs); 

フレームにはBorderLayoutが使用されています。あなたはその後、「CENTERは、デフォルトで使用された制約を使用しない場合。あなたはBorderLayoutの同じ領域にmultileコンポーネントを追加することはできません

。だから、唯一の最後に追加されたコンポーネントが表示されます。

を指定しますタブコンポーネントに異なる制約があります。

関連する問題