Mam tablicę Java Swing JLabels. Użytkownik mojego programu może dodać nowy JLabel do JFrame, a ja chcę zmienić rozmiar tekstu w JLabel na podstawie liczby JLabeli w ramce. Jeśli jest zbyt dużo JLabela, tekst nadal będzie pasował i nie będzie nakładał się na inne JLabele.Tworzenie tekstu w JLabel dynamicznie zmieniaj rozmiar
Odpowiedz
Nie wygląda ładnie, ale jeśli to jest to, czego chcesz, oto krótki fragment kodu do kompilacji i uruchomienia. Zachęcamy do wyodrębnienia kodu potrzebnego do projektu. Baw się dobrze, - 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);
}}
dzięki za kod, ale tak, żaden, który działa dla mnie, potrzebuję czegoś, co zmienia rozmiar na podstawie rozmiar Jlabel – italiano40
Nie ma za co, przepraszam, nie rozumiem komendy - która część kodu nie działa? Właśnie skopiowałem-wkleiłem to na edytorze, zapisałem, skompilowałem i uruchomiłem, działa dobrze. Być może nie trafiłem na twoje pytanie - który komponent (coś) chciałeś zmienić? Czy chcesz, aby JLabels miał stałą czcionkę (domyślną)? –
- 1. Zmieniaj dynamicznie rozmiar wyskakującego popupbox
- 2. Android: dynamicznie zmieniaj kolor tła tekstu w tle
- 3. Wybór tekstu z JLabel?
- 4. Zmieniaj adres IP dynamicznie?
- 5. Dynamicznie zmieniaj szablon danych
- 6. Dynamicznie zmieniaj opcje wx.ComboBox()
- 7. Dynamicznie zmieniaj rozmiar okna obszaru roboczego za pomocą javascript/jquery?
- 8. Wyrównanie tekstu w JLabel w prawo
- 9. dynamicznie zmieniaj klucz zwrotny UIKeyboards
- 10. Java - dynamicznie zmieniaj poziom rejestrowania
- 11. Dynamicznie zmieniaj pasek narzędzi CKEditor
- 12. Plupload, dynamicznie zmieniaj adres URL
- 13. Dynamicznie zmieniaj tekst powiadomienia z Androidem
- 14. Dynamicznie zmieniaj kolor obrazu SVG w Androidzie
- 15. Dynamicznie zmieniaj pętle for w MATLAB
- 16. Dynamicznie zmieniaj element HTML w Androidzie WebView
- 17. Java JLabel, podział tekstu na następny wiersz?
- 18. dynamicznie zmieniaj styl żadnego elementu html
- 19. Yii - dynamicznie zmieniaj reguły ze sterownika
- 20. WPF Dynamicznie zmieniaj plik zasobu i motyw
- 21. Dynamicznie zmieniaj układ za pomocą Swinga
- 22. Dynamicznie zmieniaj dane niestandardowego ekranu preferencji
- 23. Dynamicznie zmieniaj wymagany parametr Field Field
- 24. Dynamicznie tworzenie klasy w Ruby
- 25. Jak obliczyć rozmiar fragmentu tekstu w Win2D
- 26. Zwiększenie Array Rozmiar dynamicznie
- 27. Dynamicznie zmieniaj ścieżkę pliku XSD w Crystal Reports
- 28. Tworzenie tekstu bez łamania tekstu?
- 29. Skalowanie tekstu Rozmiar w TextView
- 30. Tworzenie tablic dynamicznie w Perlu
OK .. Czy masz pytanie na temat tego? Jeśli tak, możesz edytować swój wpis i dodawać pytania. Najlepiej z SSCCE (http://pscode.org/sscce.html) z tego, co już wypróbowałeś. –
Pytanie brzmi: jaki jest dobry kod do dynamicznego rozmiaru tekstu w etykiecie, aby użytkownik mógł dodać tyle etykiet, ile chce? – italiano40