2010-11-20 3 views
1

JTextPane ile bir metin düzenleyicisi oluşturmaya çalışıyorum, ancak seçilen metinlerin rengini ayarlamada sorun yaşıyorum. Burada ile gelebilir en iyisi (açıkçası, ama çalışmıyor): Bu işe almak için nasılBir JColorChooser ile metin rengi ayarlama

JMenuItem button = new JMenuItem("Set Color"); 
    toolbar.add(button); 

    button.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      Color c = JColorChooser.showDialog(frame,"Choose a color", getBackground()); 
      textPane.getSelectedText().StyledEditorKit.ForegroundAction("color",c); 
     } 
    }); 

herhangi bir öneriniz? Ya da bunu yapmak için daha iyi bir yöntem?

Teşekkür

cevap

2

getSelectedText() sadece seçili metni içeren normal bir dize döndürür; Metnin niteliklerini değiştirmek için kullanamazsınız.

Sonra, renk özelliğini oluşturmak için metnin seçilen kısmına uygulamak için SimpleAttributeSet ve StyleConstants kullanarak başlayacaktı: şimdi sadece seçili metnin rengini, ayarlanması için mükemmel çalıştı

SimpleAttributeSet attr = new SimpleAttributeSet(); 
StyleConstants.setForeground(attr, c); 
textPane.setCharacterAttributes(attr, false); 
+0

Sorun şu ki sadece rengi daha fazla metin seçerek ve farklı bir renge ayarlayarak (sadece yeni bir renk seçip bununla yazmak yerine) ayarlayabilirsiniz. Bunu nasıl çözeceğinize dair herhangi bir öneriniz var mı? – Samsquanch

+0

@ user485418: Düzenlenmiş cevabımı görün. Aslında eskisinden daha basit ve hem seçilmiş hem de yazılan metin için çalışması gerektiğine inanıyorum. :) – casablanca

+0

Bu harika, çok teşekkür ederim. – Samsquanch