Bir Java Swing JLabels dizim var. Programımın kullanıcısı JFrame'e yeni bir JLabel ekleyebilir ve çerçevedeki JLabels sayısına bağlı olarak JLabel değişikliğindeki metnin boyutunu yapmak istiyorum. Çok fazla JLabels varsa, metin hala diğer JLabels ile örtüşecek ve çakışmayacaktır.JLabel'de metin oluşturma dinamik olarak yeniden boyutlandırma
cevap
Güzel görünmüyor, ancak istediğiniz şey buysa, derlemek ve çalıştırmak için hızlı bir kod parçası. Projeniz için ihtiyacınız olan herhangi bir kodu çıkartmaktan çekinmeyin. İyi eğlenceler - M.S.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelSize extends JPanel {
private Font font;
private JPanel panel;
private JLabel label = new JLabel ("Font Size Adapter Label", JLabel.CENTER);
private JTextField tf = new JTextField ("Type in text for new label here and hit [Enter]");
public LabelSize() {
super (new BorderLayout());
panel = labelPanel();
add (panel, "North");
add (tf, "South");
tf.addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent e) {
label.setText (tf.getText());
label.setFont (font);
int labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
int maxWidth = (int) Math.floor (panel.getSize().getWidth());
if (labelW <= maxWidth)
return;
for (int k = 1 ; labelW > maxWidth ; k++) {
Font labelFont = font.deriveFont (font.getSize() - k*1.0f);
label.setFont (labelFont);
labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
}}});
}
private JPanel labelPanel() {
JPanel lp = new JPanel(new BorderLayout());
lp.setPreferredSize (new Dimension (270,30));
lp.add (label, "North");
font = label.getFont();
return lp;
}
public static void main (String[] args) {
JFrame lsFrame = new JFrame ("Lfit");
lsFrame.add (new LabelSize());
lsFrame.pack();
lsFrame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
lsFrame.setVisible(true);
}}
etiketini istedikleri kadar ekleyebilir, ancak benim için işe yaramıyor. Jlabel'in büyüklüğü – italiano40
Hoşgeldiniz, ve üzgünüm, comenti anlamıyorum - kodun hangi kısmı çalışmıyor? Sadece bir editöre kopyaladım, kurtardım, derledim ve çalıştırdım, iyi çalışıyor. Sorunuzu doğru bir şekilde alamadım - hangi bileşeni (bir şey) yeniden boyutlandırmak istiyorsunuz? JLabels'in sabit (varsayılan) yazı tipinde olmasını ister misiniz? –
- 1. Xaml'de bir pencereyi dinamik olarak yeniden boyutlandırma
- 2. ExtJS Izgara sütununu dinamik olarak yeniden boyutlandırma
- 3. yeniden boyutlandırma düzenleri dinamik ViewFlipper
- 4. Dinamik olarak yeniden boyutlandırma ve pencere yeniden boyutlandırma ve pencere yüklemesindeki içeriğin yeniden boyutlandırılması
- 5. jQuery - Dinamik içerikte otomatik yeniden boyutlandırma ve merkez konumunu otomatik olarak yeniden boyutlandırma
- 6. Yığın bozulması algılandı (Dinamik dizi yeniden boyutlandırma)
- 7. std :: list yeniden boyutlandırma sonuçlarını yeniden boyutlandırma
- 8. WPF'de Çalıştırma Sırasında Metin Kutusunu Yeniden Boyutlandırma
- 9. dinamik metin etiketi oluşturma autohotkey
- 10. Dinamik olarak TableRow oluşturma
- 11. FlexBox kutularını yeniden boyutlandırma
- 12. JTable sütun genişliklerini otomatik olarak yeniden boyutlandırma
- 13. Bir bitmap'i orantısal olarak yeniden boyutlandırma
- 14. Textarea dikey olarak yeniden boyutlandırma örneğin
- 15. Yeniden boyutlandırma CDI olarak sunulan CKEditor
- 16. HTML'de seçim kutusu ve metin alanı dinamik olarak oluşturma
- 17. Metin kutusu oluşturma ve kimliği dinamik olarak javascript kullanarak
- 18. Fancybox iframe dinamik olarak yeniden boyutlandırılıyor
- 19. Kakao pencerelerini yeniden boyutlandırma
- 20. Resim yeniden boyutlandırma ölçüde
- 21. Matlabda dinamik olarak sınıf oluşturma
- 22. Dinamik olarak genel statik oluşturma
- 23. Satırlar arasında yeniden boyutlandırma ve yeniden boyutlandırma sayfa html
- 24. Resmi yeniden boyutlandırma kullanarak jupyter not defterinde yeniden boyutlandırma
- 25. jQuery yeniden boyutlandırma elemanlarını
- 26. CodeIgniter'de çoklu yeniden boyutlandırma
- 27. UIViews yeniden boyutlandırma
- 28. java resmini yeniden boyutlandırma
- 29. Bir Diziyi Yeniden Boyutlandırma
- 30. Bir Düzeni Yeniden Boyutlandırma
Tamam .. Bunlardan herhangi biriyle ilgili bir sorunuz mu var? Eğer öyleyse, mesajınızı düzenlemek ve soruları eklemek için çekinmeyin. Halihazırda denediğiniz bir SSCCE (http://pscode.org/sscce.html) ile. –
Sorunun amacı, etiketin içerdiği metin için Dinamik kodun iyi bir kodudur. Bu nedenle, kullanıcı kodu – italiano40