Czy można włączyć zaznaczanie tekstu z JLabel? Jeśli nie, jaka jest najlepsza alternatywna kontrola do użycia i jak można ją skonfigurować tak, aby wyglądała jak JLabel?Wybór tekstu z JLabel?
Odpowiedz
JLabels nie można edytować.
Można jednak użyć JTextField i po prostu zmienić kolory pierwszego planu/tła, aby wyglądał jak JLabel. Jeśli chcesz być naprawdę ciekawy, możesz dodać kod, aby zmienić kolory, gdy jest zaznaczony, aby wskazać, że można go edytować.
Można użyć JTextField bez umożliwiający edycję
JTextField f=new JTextField("Hello World");
f.setEditable(false);
content.add(f);
Pierre
Podczas korzystania JTextField, można również usunąć granicę: f.setBorder(null);
i ustawić wyłączoną kolor tekstu : f.setDisabledTextColor(Color.black);
W oparciu o odpowiedzi: Można użyć JTextField bez umożliwiający edycję
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
nie wiem jak zatrzymać tekst z „skoki”, kiedy go wybrać, czy zastąpić tekst (programowo). Może to tylko mój komputer ...
JTextField nie pozwala na tekst w formacie HTML, jak JLabel. Jeśli chcesz selekcyjny Tekst HTML można alternatywnie spróbować JTextPane zestaw do formatowania 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
Ten post ma przydatną sugestię, aby dopasować czcionkę do tego, co normalnie byłoby pokazywane na JLabel: https://explodingpixels.wordpress.com/2008/10/28/make-jeditorpane-use-the -system-font/ –
Możemy również użyć 'setOpaque (false);' zamiast 'setBackground (null);' – user12458
To jest również świetne, ponieważ gdy już się do tego przyzwyczaisz, pozwala ci dodać dodatkowe style do tekstu. Nie podoba mi się tylko to, że nie używa już zwykłej czcionki Swing. –
Jako wariant poniżej CopyableLabel obsługuje tagi HTML i czcionek jak 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. Wyrównanie tekstu w JLabel w prawo
- 2. Java JLabel, podział tekstu na następny wiersz?
- 3. Tworzenie tekstu w JLabel dynamicznie zmieniaj rozmiar
- 4. Wybór tekstu w WebView?
- 5. Podkreślona JLabel
- 6. Wyrównaj do JLabel z tekstem o JCheckBox
- 7. Wybór tekstu Androida w widoku Web
- 8. Wybór tekstu PDF w systemie iOS
- 9. Java Animate JLabel
- 10. Wyśrodkowanie JLabel w JPanel
- 11. Newline w JLabel
- 12. JLabel uzyskać Image
- 13. JLabel na innym JLabelu
- 14. JLabel zmiana koloru
- 15. Przeciąganie JLabel z TransferHandler (przeciągnij i upuść)
- 16. Przeciągnij i upuść niestandardowy obiekt z JList do JLabel
- 17. Nakładanie JButton na JLabel w Java Swing?
- 18. CSS, aby zezwolić na wybór tekstu na stronie internetowej?
- 19. wpf: Wybór tekstu w TextBox za pomocą IsReadOnly = true?
- 20. Wybór tekstu w div (contenteditable) po dwukrotnym kliknięciu
- 21. Wybór SlickGrid i Text
- 22. Negatywne wcięcie tekstu powoduje duży wybór linku po kliknięciu
- 23. Wyłączone <input>, które umożliwia wybór tekstu?
- 24. Jak usprawnić prawo ikony w JLabel?
- 25. Wyśrodkowywanie w pionie tekstu w komórce tabeli HTML w języku Java JLabel
- 26. Wybór StartContainer w IE
- 27. Jak dodać nową linię do JLabel ze zmiennymi
- 28. Metody wyodrębniania lokalizacji z tekstu?
- 29. ActionListener na komórce JLabel lub JTable
- 30. Wybór złożonych kryteriów z pandas.DataFrame
f.setCaretPosition (0) powinny unikać 'skoki' tekst na wybór –
@fredsmith 'setCaretPosition (0)' nie dopuścić do "skok" w moich testów. To zrobiło: 'f.setMinimumSize (new Dimension ((int) f.getPreferredSize(). GetWidth() + 1, (int) f.getPreferredSize(). GetHeight()));' –
To nie wygląda jak html jest włączona dla tej implementacji –