Possiedo un array di Java Swing JLabels. L'utente del mio programma può aggiungere una nuova JLabel a JFrame e voglio che la dimensione del testo nella modifica di JLabel sia basata sul numero di JLabel nel frame. Se ci sono troppi JLabels, il testo si adatterà comunque e non si sovrapporrà ad altri JLabels.Rendere dinamico il testo in una JLabel
risposta
Non sembra carino, ma se è quello che vuoi, ecco una rapida porzione di codice da compilare ed eseguire. Sentiti libero di estrarre il codice che ti serve per il tuo progetto. Divertiti, - 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);
}}
grazie per il codice, ma non c'è nessuno che funzioni per me, ho bisogno di qualcosa che si ridimensiona in base a dimensione della Jlabel – italiano40
Siete i benvenuti, e scusate, non capisco il proposito - quale parte del codice non funziona? L'ho appena copiato-n-incollato su un editor, salvato, compilato e eseguito, funziona perfettamente. Forse non ho capito bene la tua domanda - quale componente (qualcosa) vuoi ridimensionare? Volevi che i JLabels fossero di tipo fisso (predefinito)? –
- 1. Testo allineato in JLabel
- 2. Allineare il testo in JLabel a destra
- 3. Cambiare il colore di un testo in una JLabel
- 4. Come riassumere testo in JLabel?
- 5. Selezione del testo da una JLabel?
- 6. Due icone in una JLabel?
- 7. JLabel html testo ignora setFont
- 8. Come posso rendere grassetto il testo drawString()?
- 9. JLabel sull'evento di modifica del testo
- 10. JLabel Java, interrompi il testo alla riga successiva?
- 11. Android: Sottolineato staticamente il testo dinamico in TextView
- 12. Come rendere il testo "trasparente"?
- 13. scoprire se il testo di JLabel supera la dimensione dell'etichetta
- 14. Come rendere rosso il testo in mediawiki?
- 15. Come aggiungere una nuova riga in una JLabel con variabili
- 16. JLabel dipinge il nuovo testo su quello vecchio, dopo che il testo impostato viene chiamato
- 17. Centratura di una JLabel in un JPanel
- 18. Come modificare dinamicamente una JLabel
- 19. Cambiamento dinamico del testo
- 20. Come disegnare su una JLabel?
- 21. Collegamenti ipertestuali in JLabel
- 22. JLabel - ottieni il pannello genitore?
- 23. Come mettere il testo di una JLabel sotto la sua icona
- 24. Visualizza BMP in JLabel
- 25. Cambia il testo del paragrafo in modo dinamico con jQuery?
- 26. Come rendere NSStringDrawingContext restringente il testo?
- 27. Sottolineato JLabel
- 28. Aggiunta di testo dinamico sull'immagine
- 29. Come visualizzare il testo dinamico con il cursore del mouse
- 30. Come aggiungere JLabel a JEditorPane?
OK .. Avevi una domanda in merito? Se è così, sentiti libero di modificare il tuo post e aggiungere le domande. Preferibilmente con un SSCCE (http://pscode.org/sscce.html) di ciò che hai già provato. –
La domanda è che cos'è un buon codice per ridimensionare il testo nell'etichetta in modo che l'utente possa aggiungerne tante quante vogliono le etichette – italiano40