Text vom JLabel holen

jorgeHX

Erfahrenes Mitglied
Hallo zusammen,
ich habe folgendes Problem.
Auf ein JLabel habe ich folgenden Text mit Zeilenumbruch geschrieben:

label.setText( "<html>"+vorname+"<p/>"+nname+"</html>" );

Wie bekomme ich denn nun bei einer Anfrage nur den Text in einen String,
also: string test=vorname nname
und nicht den gesamten HTML-Text?

Danke vielmals,
Jörg
 
Hallo!

Das geht ganz einfach mit Regulären Ausdrücken.... ;-)

Beispiel:

Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 */

public class JLabelExample extends JFrame {

	private JLabel label;
	private JButton button;
	private String regex = "<html>(.*)<p>(.*)</html>";
	private Pattern pattern;

	public JLabelExample() {
		super("JLabelExample");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		String vorname = "Thomas";
		String nname = "Darimont";

		pattern = Pattern.compile(regex);

		label = new JLabel("<html>" + vorname + "<p>" + nname + "</html>");

		button = new JButton("push me");
		button.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				Matcher m = pattern.matcher(label.getText());
				if (m.matches()) {
					System.out.println("Vorname: " + m.group(1));
					System.out.println("Nachname: " + m.group(2));
				}
			}
		});

		getContentPane().add(label, BorderLayout.NORTH);
		getContentPane().add(button, BorderLayout.SOUTH);

		pack();

		setVisible(true);
	}

	public static void main(String[] args) {
		new JLabelExample();
	}
}

Gruß Tom
 
Danke dir,
ich hatte mit zur Überbrückung einfach die zwei nötigen Strings ausgeschnitten.
Deins sieht aber wesentlich eleganter aus,
ciao,
Jorge
 
Zurück