2016-04-10 28 views
-1
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)); 

Bu kodu en az 100+ kere bugün gördüm ve 100 + kere denedim ve her defasında çalışmaz. Ben bir JLabel içinde metnin altını çizmeye çalışıyorum ve bu benim bulduğum tek kod bloğu ve stackoverflow üzerindeki herkes bunu anlamadı, benden başka? Harita bir sınıf mı?Birisi bunun nasıl çalıştığını açıklayabilir mi lütfen?

+1

Teknik olarak, Harita bir arabirimdir, ancak bunu bir sınıf olarak düşünebilirsiniz. Özniteliklerin Map'i uygulayan bir HashMap olduğunu hayal ediyorum. – billjamesdev

+0

@billjamesdev so Map nitelikleri = font.getAttributes(); arayüzün başlatılması nedir? –

+0

Eh, no .. öznitelikleri, anahtar/değer çiftlerinin bir "listesindeki" fontun tüm niteliklerini içerir. Bir Liste buna benzer ["value1", "value2"], buna benzer bir Map ["attrName": "attrValue", "attrName2": "attr2Value"]. Harita değerleri, indeksle (bir Listede olduğu gibi) değil, anahtarla (yukarıdaki "attrName") alınır. – billjamesdev

cevap

0

Sorularınıza ve yorumlarınıza göre, kodunuzda topCaption adında bir JLabel oluşturan bir kodunuz var, bunu bir JPanel adında viewWindow olarak eklersiniz ve etiketi bir sonuç olarak görebilirsiniz.

Yani bir yere sahiptir:

JLabel topCaption = new JLabel(you may have some stuff here); 

Right bundan sonra bunu:

Font font = topCaption.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
topCaption.setFont(font.deriveFont(attributes)); 

Ayrıca, bu devam etmeden önce bilgisi olarak, daha fazla okuma yapmak gerekir önerebiliriz Bir Harita nedir, vb. çoğu UI programlama için oldukça basittir ve kuşağınızın altında bazı temeller olmadan böyle bir sorun yaşamaya devam edeceksiniz.

+0

numaralı telefondan yardımlarınız için şimdiden teşekkür ederiz. Aslında niçin çalışmadığını ve aslında bunun için internette arama yapmam gerektiğini düşündüğüm bülbüllerini anladım. oh iyi teşekkürler çok oldu –

İlgili konular