2016-04-04 23 views
0

私はテキストベースのアドベンチャーゲームを構築しています。コンピュータの応答が左側に表示されるようにしようとしていますが、選択肢は右側に表示されるため、2つを簡単に区別できます。問題は、テキストを右揃えにする方法が見つからないようだということです。私はJScrollPaneの中にJTextAreaを使用しています。すべてはJFrameです。JTextAreaのテキストを右揃えにするにはどうすればよいですか?

ご協力いただきありがとうございます。 :)

+0

可能な重複:ような何かhttp://stackoverflow.com/questions/24315757/java-align-jtextarea-to-the-right – KevinO

+0

@KevinOは、私はそれらを試してみましたが、それは動作しません。 'append(String)'メソッドを使用している可能性がありますか? –

+0

あなたの結果を達成しようとしている方法に関する正確な情報は不十分です。問題を明確に示し、期待と失敗を明確に説明する簡潔なコードを共有する必要があります。ただし、同じテキスト領域でテキストを左右に配置しようとしている場合は、応答文字列の書式を右揃えにする必要があります。 Apache Commonsにはユーティリティがあります。私は個人的にJScrollPaneを使用し、会話の各部分に新しいウィジェットを追加します。左揃え、右寄せの各ウィジェットを追加します。 – KevinO

答えて

3

JTextAreaを使用して、個々のテキスト行の配置を変更することはできません。

個々の行の属性を変更するには、最も簡単な方法はJTextPaneです。

JTextPane textPane = new JTextPane(); 
StyledDocument doc = textPane.getStyledDocument(); 

SimpleAttributeSet left = new SimpleAttributeSet(); 
StyleConstants.setAlignment(left, StyleConstants.ALIGN_LEFT); 
StyleConstants.setForeground(left, Color.RED); 

SimpleAttributeSet right = new SimpleAttributeSet(); 
StyleConstants.setAlignment(right, StyleConstants.ALIGN_RIGHT); 
StyleConstants.setForeground(right, Color.BLUE); 

try 
{ 
    doc.insertString(doc.getLength(), "\nLeft aligned text.", left); 
    doc.setParagraphAttributes(doc.getLength(), 1, left, false); 
    doc.insertString(doc.getLength(), "\nRight aligned text.", right); 
    doc.setParagraphAttributes(doc.getLength(), 1, right, false); 
    doc.insertString(doc.getLength(), "\nMore left aligned text.", left); 
    doc.setParagraphAttributes(doc.getLength(), 1, left, false); 
    doc.insertString(doc.getLength(), "\nMore right aligned text.", right); 
    doc.setParagraphAttributes(doc.getLength(), 1, right, false); 
} 
catch(Exception e) {} 
+0

コンパイルしようとすると、変数StyleConstantsをここで見つけることができません。StyleConstants.setAlignment (左、** StyleConstants **。ALIGN_LEFT);では、最初のものではありません。何か不足していますか? –

+0

'StyleConstants'クラス用のAPIを読み込み、インポートする必要のあるパッケージを見つけます。 – camickr