Ik ben bezig met het schrijven van een programma waarin tekst in een JEditorPane wordt gezet.
In deze JEditorPane staan vragen met antwoorden (stap 1), deze antwoorden worden weergegeven als hyperlinks (stap 2). Als iemand op een antwoord klikt is het de bedoeling dat er in de JEditorPane een nieuwe tekst verschijnt (stap 3).
Nu is de laatste stap, van het verhaal, mijn probleem. Ik kan namelijk de hyperlinks creeëren en krijg in de "console" ook een goede output. Daarna probeer ik de inhoud van de JEditorPane met de .setText statement te veranderen maar gebeurd er niets zichtbaars, als ik namelijk in de console de inhoud van de pane vraag staat daar wel de nieuwe (en dus ook goede tekst). Weet iemand hoe ik dit kan oplossen. Ik hebrepaint(); en dergelijke opties al geprobeerd....
De code die erover gaat:
In deze JEditorPane staan vragen met antwoorden (stap 1), deze antwoorden worden weergegeven als hyperlinks (stap 2). Als iemand op een antwoord klikt is het de bedoeling dat er in de JEditorPane een nieuwe tekst verschijnt (stap 3).
Nu is de laatste stap, van het verhaal, mijn probleem. Ik kan namelijk de hyperlinks creeëren en krijg in de "console" ook een goede output. Daarna probeer ik de inhoud van de JEditorPane met de .setText statement te veranderen maar gebeurd er niets zichtbaars, als ik namelijk in de console de inhoud van de pane vraag staat daar wel de nieuwe (en dus ook goede tekst). Weet iemand hoe ik dit kan oplossen. Ik hebrepaint(); en dergelijke opties al geprobeerd....
De code die erover gaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| public void layout()
{
f = new Panel();
invoervak = new JEditorPane(
"text/html",
"");
invoervak.setEditable(false);
StringBuffer sb = new StringBuffer();
sb.append("<b>Vraag?</b><br>");
sb.append("- <a href=\"v112\">v112</a><br>");
sb.append("- <a href=\"v113\">v113</a><br>");
invoervak.setText(sb.toString());
invoervak.addHyperlinkListener(this);
scrollPane = new JScrollPane(invoervak);
f.add(scrollPane);
f.setSize(500, 500);
f.setVisible(true);
setLayout(new BorderLayout());
add("North", f);
setSize(500, 500);
setVisible(true);
}
public void hyperlinkUpdate(HyperlinkEvent e)
{
if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
invoervak.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
if (e.getEventType() == HyperlinkEvent.EventType.EXITED){
invoervak.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
StringTokenizer st = new StringTokenizer(e.getDescription(), " ");
if (st.hasMoreTokens()) {
// String s = st.nextToken();
invoervak.setText("hoi");
String a = invoervak.getText();
System.err.println(a);
}
}
} |