Est-il possible d'activer la sélection de texte à partir d'un JLabel? Si non, quel est le meilleur contrôle alternatif à utiliser, et comment peut-il être configuré pour apparaître comme un JLabel?Sélection du texte d'un JLabel?
Répondre
JLabels ne peut pas être éditable.
Cependant, vous pouvez utiliser un JTextField et juste changer les couleurs de premier plan/arrière-plan pour le faire apparaître comme JLabel. Si vous voulez être vraiment chic, vous pouvez ajouter du code pour changer les couleurs quand il est sélectionné pour indiquer qu'il est modifiable.
Vous pouvez utiliser un JTextField sans activer l'édition
JTextField f=new JTextField("Hello World");
f.setEditable(false);
content.add(f);
Pierre
Lorsque vous utilisez JTextField, vous aussi vouloir supprimer la bordure: f.setBorder(null);
et définir la couleur du texte désactivé : f.setDisabledTextColor(Color.black);
sur la base des réponses: Vous pouvez utiliser un JTextField sans activer l'édition
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
Je ne sais pas comment arrêter le texte de « saut » lorsque vous sélectionnez, ou remplacer le texte (programme). Peut-être qu'il est juste mon ordinateur ...
Un JTextField ne permet pas de texte au format HTML comme un JLabel. Si vous voulez que le texte HTML sélectionné, vous pourriez aussi essayer un JTextPane réglé sur la mise en forme 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
Ce message contient une suggestion utile pour que la police corresponde à ce qui serait normalement affiché sur un JLabel: https://explodingpixels.wordpress.com/2008/10/28/make-jeditorpane-use-the -system-font/ –
Nous pouvons aussi utiliser 'setOpaque (false);' au lieu de 'setBackground (null);' – user12458
C'est aussi génial car une fois que vous y êtes habitué, cela vous permet d'ajouter des styles supplémentaires au texte. La seule chose que je n'aime pas, c'est qu'il n'utilise plus la police normale de Swing. –
Comme variante ci-dessous CopyableLabel prend en charge les balises HTML et les polices de caractères comme 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. Comment présenter du texte verticalement dans un JLabel? (Java 1.6)
- 2. sélection texte du champ avec javascript
- 3. Afficher BMP dans JLabel
- 4. Mise en forme HTML Jlabel
- 5. sélection de texte en CSS?
- 6. ArrayList contenu à JLabel
- 7. wpf: Sélection du texte dans TextBox avec IsReadOnly = true?
- 8. Comment changer l'icône d'un JLabel?
- 9. exception de pointeur nul JLabel
- 10. getSelection() et insertNode - Sélection de texte Javascript
- 11. Manipuler la sélection de texte dans Powerpoint
- 12. Comment ajouter un espace horizontal avec un JLabel
- 13. Créer une sélection de texte rectangulaire
- 14. ActionListener sur une cellule JLabel ou JTable
- 15. Java JLabel - ajouter un identifiant unique
- 16. Fondu un JLabel qui contient html
- 17. Méthode setBorder pour JLabel provoquant un problème de peinture
- 18. Comment puis-je refléter la sélection de texte?
- 19. Comment créer une zone de texte glissable? (C.-à inhiber la sélection de texte, mais permettre le positionnement du curseur)
- 20. désactiver la sélection de texte tout en appuyant sur «shift»
- 21. Comment désactiver temporairement la sélection de texte en utilisant JavaScript?
- 22. sélection de texte d'accès dans un TreeNode (WinForms)
- 23. Sélection de X mots d'un champ de texte dans MySQL
- 24. Comment puis-je positionner un élément à côté de la sélection du texte utilisateur?
- 25. Sélection du contenu d'une zone de texte dans un classable, jQuery
- 26. Comment accéder au texte "affiché" d'une option de boîte de sélection du DOM?
- 27. Taille du texte pour le menu déroulant/sélection de l'entrée ne fonctionne pas dans Safari
- 28. Redimensionner la boîte de sélection pour élever le texte choisi
- 29. Conserver la sélection de texte lorsque le focus change
- 30. Inverser la sélection de texte par programmation dans une zone de texte enrichi (vb.net)
f.setCaretPosition (0) devrait éviter que le texte 'sauter' sur la sélection –
@fredsmith 'setCaretPosition (0)' n'a pas empêché le "saut" dans mes tests. Cela a fait: 'f.setMinimumSize (nouvelle dimension ((int) f.getPreferredSize() getWidth() + 1, (int) f.getPreferredSize() getHeight())..);' –
Il ne semble pas comme html est activé pour cette implémentation –