2016-04-04 18 views
0

Metin tabanlı bir macera oyunu yapıyorum ve bunu yapmak için çalışıyorum, bilgisayarın cevapları solda, yaptığınız seçimler sağ tarafta görünür, böylece ikisini kolayca ayırt edersiniz. Sorun şu ki, metni sağa hizalamak için bir yol bulamıyorum. JFrame'un içinde JScrollPane'un içinde bir JTextArea kullanıyorum.JTextArea'da metni sağa nasıl hizalarım?

Yardımı çok takdir ediyor, Teşekkürler. :)

+0

Olası yinelenen: Böyle bir şey http://stackoverflow.com/questions/24315757/java-align-jtextarea-to-the-right – KevinO

+0

@KevinO O denedim ama çalışmıyor. "Append (String)" yöntemini kullanıyorum olabilir mi? –

+0

Sonuçlarınıza ulaşmaya çalıştığınız konusunda tam olarak yeterli bilgi bulunmuyor. Sorunu açık bir şekilde ortaya koyan ve beklentileri ve hataları açık bir şekilde açıklayan özlü kodu paylaşmanız gerekir. Ancak, noktanız aynı metin alanında sol ve sağa metin hizalamaya çalıştığınız olsaydı, yanıt dizesini sağa yaslanacak şekilde biçimlendirmeniz gerekir. Apache Commons'ın yardım etmek için yardımcıları vardır. Kişisel olarak bir JScrollPane kullanıp, konuşmanın her parçası için yeni Widget'lar ekleyebilirim, bazıları haklı, bazı haklı haklı. – KevinO

cevap

3

Metin metninin hizalamasını değiştirmek için JTextArea kullanamazsınız.

Tek tek satırların niteliklerini değiştirmek için en kolay yol bir JTextPane kullanmaktır. arasında

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

kullanmak olacaktır. Derlemeye çalıştığımda, "StyleConstant" değişkenini burada bulamadığını söylüyor: "StyleConstants.setAlignment (left, ** StyleConstants **. ALIGN_LEFT); ama başlangıçtaki değil. Bir şey mi eksik? –

+0

İçe aktarmanız gereken paketi bulmak için 'StyleConstants' sınıfı API'sini okuyun. – camickr

İlgili konular