2016-04-14 10 views
0

JSpinner çok, çok büyük (yani çok sayıda karakter) bir değere sahipse, kendi boyutunu genişletir ve içinde bulunduğu panelin boyutunu havaya uçurur. Bunu önlemek ve bileşenin fazla genişlememesini sağlamak.JSpinner ölçüsünü kısıtla

Pencerenin boyutuna ve içindeki tüm bileşenlerin boyutuna göre dinamik olarak boyutlandırdığı için, tercih edilen boyutu önceden tanıması mümkün değildir. Ancak, JSpinner böyle havaya uçur gibi görünen tek kişidir.

Bu durumda bir JSpinner kullanılmalıdır, buradan atlayamazsınız. Temel editörün metin alanına sütun sayısını ayarlamayı denedim, işe yaramıyor.

JSpinner'ın çevreleyen panelin genişliğini doldurabilmesi ve bundan daha büyük olmaması gerekir. Burada yapma seçeneğim var mı?

Teşekkürler.

+0

Düzen yöneticisi ile sorun olabilir. Ne kullanıyorsun? – Thomas

cevap

0

Çeviricinin getPreferredSize() yöntemini geçersiz kılın.

Varsayılan değeri almak için ilk önce super.getPreferredSize() yöntemini çağırırdım. Ardından genişliği makul bir değere geçersiz kılabilirsiniz. Yazı hiç değişirse sizin genişlikli yazı ile rescale böylece

Dimension d = super.getPreferredSize(); 
d.width = ??? 
return d; 

Sen spineer ait FontMetrics dayanarak genişliğini yapabiliriz.

İlgili konular