ist es möglich Strings, die in einer (nicht editierbaren) JTextArea angezeigt werden, mit Links o.ä. zu hinterlegen?
Mein Ziel ist - wie es bei einem Button über einen Actionlistener möglich ist - durch Klicken auf den Text z.B. ein weiteres Fenster mit entsprechenden Daten zu öffnen.
Genau mit dem habe ich auch schon rumexperimentiert - bin aber kläglichst gescheitert - ein passendes Beispiel konnte ich auch bei Google nicht finden...
Vielleicht kann mir ja jemand helfen:
Code:
import java.awt.BorderLayout;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.WindowConstants;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class Linktest extends JFrame implements HyperlinkListener{
public Linktest(){
super("Link-Test");
setSize(500,500);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
t = new JEditorPane();
t.setEditable(false);
t.addHyperlinkListener(this);
final JScrollPane scrolltext = new JScrollPane(t);
getContentPane().add(scrolltext, BorderLayout.CENTER);
String text1 = "T1";
String text2 = "T2";
// ???
}
public void hyperlinkUpdate(HyperlinkEvent arg0) {
// ???
}
public JEditorPane t;
}
In dem Beispiel sollen im Textfeld einfach nur die beiden Texte text1 und text2 angezeigt werden und beim Klick folgendermaßen unterschliedlich reagieren:
text1: JOptionPane.showMessageDialog(new Window(new Frame(), "Hallo!"))
text2: JOptionPane.showConfirmDialog(new Window(new Frame(), "Tschüss!"))
(Die Logik der beiden Dialoge sei jetzt einfach mal gegeben )
public void hyperlinkUpdate(HyperlinkEvent h_event)
{
CommandControl cc = CommandControl.getTheInstance();
if(h_event.getEventType() == HyperlinkEvent.EventType.ENTERED)
{
// Tu was
}
else if(h_event.getEventType() == HyperlinkEvent.EventType.EXITED)
{
// Tu was
}
else if(h_event.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
// Tu was
}
}