È possibile abilitare la selezione del testo da una JLabel? In caso contrario, qual è il miglior controllo alternativo da utilizzare e come può essere configurato per apparire come un JLabel?Selezione del testo da una JLabel?
risposta
JLabels non può essere modificato.
Tuttavia, è possibile utilizzare un JTextField e modificare semplicemente i colori di primo piano/sfondo per farlo apparire come una JLabel. Se si desidera essere davvero fantasiosi, è possibile aggiungere codice per cambiare i colori quando viene selezionato per indicare che è modificabile.
è possibile utilizzare una JTextField senza abilitare la modifica
JTextField f=new JTextField("Hello World");
f.setEditable(false);
content.add(f);
Pierre
Quando si utilizza JTextField, vorrete anche per rimuovere il bordo: f.setBorder(null);
e impostare il colore del testo disattivato : f.setDisabledTextColor(Color.black);
Sulla base delle risposte: È possibile utilizzare un JTextField senza abilitare la modifica
JTextField f=new JTextField("Hello World");
f.setEditable(false);
f.setBackground(null); //this is the same as a JLabel
f.setBorder(null); //remove the border
Non so come fermare il testo da "salto" quando si seleziona, o sostituire il testo (di programmazione). Forse è solo il mio computer ...
Un JTextField non consente il testo in formato html come una JLabel. Se si desidera che il testo html selezionabile in alternativa, si potrebbe provare un JTextPane impostato per la formattazione HTML:
JTextPane f = new JTextPane();
f.setContentType("text/html"); // let the text pane know this is what you want
f.setText("<html>Hello World</html>"); // showing off
f.setEditable(false); // as before
f.setBackground(null); // this is the same as a JLabel
f.setBorder(null); // remove the border
Questo post ha un suggerimento utile per far corrispondere il carattere a quello che verrebbe normalmente mostrato su una JLabel: https://explodingpixels.wordpress.com/2008/10/28/make-jeditorpane-use-the -system-font/ –
Possiamo anche usare 'setOpaque (false);' invece di 'setBackground (null);' – user12458
Questo è anche ottimo perché una volta che ci si abitua ad esso, è possibile aggiungere altri stili al testo. L'unica cosa che non mi piace è che non usa più il carattere normale di Swing. –
Come variante sotto CopyableLabel supporta i tag html e caratteri come JLabel.
public class CopyableLabel extends JTextPane {
private static final long serialVersionUID = -1;
private static final Font DEFAULT_FONT;
static {
Font font = UIManager.getFont("Label.font");
DEFAULT_FONT = (font != null) ? font: new Font("Tahoma", Font.PLAIN, 11);
}
public CopyableLabel() {
construct();
}
private void construct() {
setContentType("text/html");
setEditable(false);
setBackground(null);
setBorder(null);
putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, true);
setFont(DEFAULT_FONT);
}
}
- 1. JLabel sull'evento di modifica del testo
- 2. Rendere dinamico il testo in una JLabel
- 3. Testo allineato in JLabel
- 4. JLabel html testo ignora setFont
- 5. Selezione del testo in una WebView?
- 6. Come riassumere testo in JLabel?
- 7. Disattiva la selezione del testo nell'area testo
- 8. Selezione del testo Evidenziazione eccessiva
- 9. Due icone in una JLabel?
- 10. Come aggiungere un comportamento di selezione a JLabel
- 11. Cambiare il colore di un testo in una JLabel
- 12. Selezione del testo PDF su iOS
- 13. Errore di modifica del testo: TextView non supporta la selezione del testo. Selezione annullata
- 14. Selezione del testo Modifica Ancore mancanti
- 15. Allineare il testo in JLabel a destra
- 16. come impostare la selezione di selezione all'interno del testo
- 17. jQuery evento di selezione del testo
- 18. Selezione del testo Android in Webview
- 19. QWebview/webkit disabilita la selezione del testo
- 20. Come modificare dinamicamente una JLabel
- 21. Come disegnare su una JLabel?
- 22. Blocco di selezione del testo o selezione di più testo contemporaneamente
- 23. pdf.js con selezione testo
- 24. Centratura di una JLabel in un JPanel
- 25. Rotate a Swing JLabel
- 26. Trascina e rilascia oggetto personalizzato da JList a JLabel
- 27. JLabel Java, interrompi il testo alla riga successiva?
- 28. Come aggiungere JLabel a JEditorPane?
- 29. SlickGrid e selezione testo
- 30. Sottolineato JLabel
f.setCaretPosition (0) dovrebbe evitare di 'salto' di testo su selezione –
@fredsmith 'setCaretPosition (0)' non ha impedito il "salto" nel mio test. Questo ha fatto: 'f.setMinimumSize (new Dimension ((int) f.getPreferredSize(). GetWidth() + 1, (int) f.getPreferredSize(). GetHeight()));' –
Non sembra come html è abilitato per questa implementazione –