8.5.8 | JLabel |
Ein JLabel ist eine nicht editierbare Anzeigekomponente, um Text und ggf. eine Grafik (die einem Icon entspricht) darzustellen. Ist der angegebene Text mit <html> und </html> umrahmt, stellt das JLabel den Text als HTML dar. Das Zeichnen dauert allerdings dadurch länger, wodurch man dies mit Bedacht einsetzen sollte.
Ein JLabel kann mittels der Methode setLabelFor(Component comp) einer Komponente zugeordnet werden. Wenn man bei dem JLabel zusätzlich ein Tastenkürzel (über die Methode setDisplayedMnemonic(int key)) angibt, wird durch Eingabe dieses Kürzels bei der assoziierten Komponente die Methode requestFocus() aufgerufen. Während bei normalem Text der entsprechend sensibilisierte Buchstabe beim JLabel unterstrichen ist, funktioniert dies nicht, wenn der Text aus HTML besteht.
getContentPane().setLayout(new FlowLayout()); label = new JLabel("Einfacher Text"); getContentPane().add(label); label = new JLabel("<html><table border=\"1\">"+ "<tr><td>Label</td><td>mit</td></tr>"+ "<tr><td>HTML-</td><td>Text</td></tr>"+ "</table></html>"); getContentPane().add(label); label = new JLabel(new ImageIcon( getClass ().getResource("t1.gif"))); getContentPane().add(label); label = new JLabel("Name: "); // Tastenkürzel definieren label.setDisplayedMnemonic('N'); getContentPane().add(label); JTextField textField = new JTextField(); // Textfeld dem Label zuordnen label.setLabelFor(textField); getContentPane().add(textField);