2017-11-06 21 views
0

私はテキストエディタで作業していますが、行/改行を含むことができる入力テキストを表示したいとします。しかし、JLabelは複数行のテキストを表示しません(HTMLは使用しませんが、使用したくありません)。私は編集不可能なJTextArea(JScrollPane内)に表示​​しようとしましたが、マウスホイールではスクロールできなくなりました。例えばJavaで改行を含むテキストを表示する方法

JTextArea textArea = new JTextArea(); 
JLabel label = new JLabel(textArea.getText()); 
JFrame.add(new JScrollPane(label)); 

はどのようにして、スクロール可能なコンテナ内の複数行のテキストを表示することができますか?

+0

*「HTMLを使用せずに - 私は使用したくありません」*なぜですか? – Frakcool

+0

'JTextArea'ではなく、スクロールパネルにラベルを追加しましたか? – AJNeufeld

+0

さて、入力されたテキストの改行を
要素に置き換える方法を教えてもらえれば、私はokと言います。私は、HTMLなしで別の解決策があると思った。 – Saphyra

答えて

2

なぜあなたのJTextAreaがスクロールを止めるのかは分かりません。別の問題かもしれません。これは正常に動作するはずです。

package test; 

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.SwingUtilities; 

public class Test { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(() -> { 
      JFrame f = new JFrame(); 
      JTextArea ta = new JTextArea("a\nb\nc\nd\ne\nf\ng\nh"); 
      ta.setEditable(false); 
      JPanel p = new JPanel(); 
      p.setLayout(new BorderLayout()); 
      p.add(new JScrollPane(ta)); 
      f.add(p); 
      f.setSize(100, 100); 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.setVisible(true); 
     }); 
    } 
} 
+1

多くのコード行をダンプするだけでなく、読者がその違いを見つけることを期待するのではなく、*なぜ*あなたのコードが問題を解決するのか説明した方がよいでしょう。 – VGR

+0

@VGRうまくいけば、私のコードは「私が編集不可能なJTextAreaの部分に表示しようとしましたが、それにコードが付いていませんでした。 –

関連する問題