2016-04-10 52 views
0
JLabel topCap = new JLabel (" Top Caption"); 
txtTop = new JTextField("Enter top Caption here"); 
topCaption = new JLabel("", JLabel.CENTER); 
viewerWindow.add(topCaption, BorderLayout.NORTH); 
JLabel bottomCap = new JLabel (" Bottom Caption"); 
txtBottom = new JTextField("Enter Bottom Caption here"); 
bottomCaption = new JLabel("",JLabel.CENTER); 
viewerWindow.add(bottomCaption,BorderLayout.SOUTH); 

çalışmaktadır . Bu alt çizgi hariç tüm stilleri (italik ve kalın) için iyi çalışır. Her yere baktım ve stackoverflow üzerinde bir kod bloğu buldum ama bu da işe yaramadı.Bir JLabel metin altını çalışıyorum ama hiçbir şey ben JFrame görüntülenen kullanıcı <code>JTextField</code> metin girer ve güncelleme JButton bastığında, başka bir kod bloğunu olan tüm

JLabel label = new JLabel("Underlined Label"); 
Font font = label.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
label.setFont(font.deriveFont(attributes)); 

iyice kimse ne yapmalıyım biliyor karıştı: Eğer merak ediyorsanız durumda, bu kod satırı işe yaramadı mı? Ya da en azından hangi sınıfa bakmalıyım? teşekkürler

+0

Mesaj bir [MCVE] Ben gidenin ne hiç tam olarak emin değilim – Reimeus

+0

@Reimeus çalışmıyor sebebini açıklamak için. En altta koyduğum kod bloğunu kullandığımda, "Sınıf Haritasını bulamıyor" diyen bir hata mesajı alıyorum ama Java Kütüphanesine gittim ve herhangi bir sınıf haritasına bulamadım. –

cevap

0

Sen awt

java.awt.font.TextAttribute; 

Sen altını çizmek HTML kullanabilirsiniz gelen TextAttribute içe olmalıdır. Ancak HTML'den daha hızlı render için, yönteminize bağlı kalmalısınız.

JLabel.setText("<HTML><U>Underlined Text</U></HTML>"); 
+0

Bunu zaten aldım ve hala şans yok. –

+0

tam hata mesajını gönderebilir veya neyin yürütülmediğini açıklayabilir misiniz? –

+0

hata mesajı yok, sadece ekrandaki JLabel hiç değişmiyor. Basıldığında, vurgulanacak JLabel'deki metni değiştirmesi gereken bir JRadioButton'um var. ActionListener'ı doğru şekilde ekledim çünkü diğer font stilleriyle (koyu ve italik) test ettim. –

0

JLabel içinde HTML'yi kolayca kullanabilirsiniz. Örnek olarak bunu yapabilirsiniz.

JLabel label=new JLabel(); 
label.setText("<html><u>Underlined Label</u></html>"); 
+0

ve boyutu altını yanı sıra değiştirmek isterseniz, o zaman setFont yöntemini çağırır mıyım? –

+0

Bu durumda bu [link] 'den bir ipucu alabileceğinizi düşünüyorum (http://stackoverflow.com/questions/2715118/how-to-change-the-size-of-the-font-of-a-jlabel -to-almak-maksimum-boyut) –

+0

Benim durumumda çalışmıyor. WindowsClassicLookAndFeel kullanıyorum. Varsayılan L & F ile çalışır. Yani bu bir böcek. – FaithReaper