Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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
}
}