Syntaxhighlight während der Texteingabe

Status
Nicht offen für weitere Antworten.

keman

Mitglied
Ich will ein JavaScript-Editor mit Java machen, der einen Syntaxhighlight beinhalten soll. Bis jetzt hab ich es nur geschafft, dass beim Klicken eines Buttons der Quelltext gehighlightet wird. Jedoch will ich es einiges professioneller machen. Wie kann ich machen, mit der Standard-javax.swing.text-Bibliothek, dass der Text bei der Texteingabe gehighlightet wird, also z.B. dass das Word "function" rot dargestellt wird (nicht Hingergrund-, sonder Fordergrundfarbe!!)?
 

hirion

Mitglied
hallo!

ähnliches versuche ich auch gerade. hab auch gelesen dass da JEditorPane samt einem eigenen EditorKit gut wäre. wie das allerdings funktionieren soll weiß ich leider auch nicht.
gibt auch ein tutorial wie man einen "Java" Editor macht klick mich allerdings bin ich nicht so wirklich schlau draus geworden.
hoffe es hilft dir
 
G

Guest

Gast
Hallo,

ich habe mal für so etwas die Methode keyReleased() vom Interface KeyListener benutzt.
 

mattulla

Bekanntes Mitglied
weiss nicht ob ihr so etwas meint:

Code:
textfield.setForeground(Color.RED);
 
G

Guest

Gast
Sorry,

dachte eine Methode zur Textformatierung ware schon vorhanden. Einfach mal hier in der Suche JTextPane oder JEditorPane eingeben. Beispiele sollte es hier auch irgendwo geben.
 

keman

Mitglied
Das habe ich stundenlange gemacht. Jedoch ist kein brauchbares Beispiel aufgetaucht. Das beste was ich gefunden habe, ist wie man den Hintergrund eines Textes Highlightet (hat aber nicht mit setBackground() etc. zu tun!!), aber ich will wissen wie man den Fordergund ändert...
 
G

Guest

Gast
Da ich heute einen guten Tag habe, hier mal paar ungetestete Zeilen Code
Code:
JTextPane textPane = new JTextPane();
StyledDocument doc = textPane.getStyledDocument();
Style roterStyle = doc.addStyle(null, null);
StyleConstants.setForeground(roterStyle , Color.red);
Style blauerStyle = doc.addStyle(null, null);
StyleConstants.setForeground(blauerStyle , Color.blau);
doc.insertString(doc.getLength(), "Ich bin rot! ", roterStyle);
doc.insertString(doc.getLength(), "Ich bin blau! ", blauerStyle);
textPane.setStyledDocument(doc);
 

keman

Mitglied
Ja, auf das bin ich schon seehr lange gekommen... und jetzt, das highlight während der Texteingabe???
Hier mein Code:

Code:
final JTextPane textPane = new JTextPane();
textPane.addKeyListener( new KeyAdapter() {
public void keyPressed(KeyEvent ke) {
StyledDocument doc = textPane.getStyledDocument();
Style roterStyle = doc.addStyle(null, null);
StyleConstants.setForeground(roterStyle , Color.red);
Style blauerStyle = doc.addStyle(null, null);
StyleConstants.setForeground(blauerStyle , Color.blau);
doc.insertString(doc.getLength(), "Ich bin rot! ", roterStyle);
doc.insertString(doc.getLength(), "Ich bin blau! ", blauerStyle);
textPane.setStyledDocument(doc);
}
});

oder was auch immer... aber der Inhalt des JTextPanes wird bei jeder Tastatureingabe neu geladen --> es passiert nicht das, was ich will!
 
G

Guest

Gast
keman hat gesagt.:
...auf das bin ich schon seehr lange gekommen...
dann hättest Du ja schon sehr lange mal den Code hier posten bzw. genauer schreiben können was Du hast und was Du willst.

Sicherlich bring es nichts nach dem Auslösen eines Events immer wieder das selbe in die Textkomponente zu schreiben. Das war ja nur ein allgemeines Bsp. wie man Text formatiert darstellen kann.
Also musst nach jeder Texteingabe den Text analysieren und überprüfen, ob ein "Schlüsselwort" geschrieben wurde, um dann anschliessend den Text in der entsprechenden Formatierung an das Document der Komponente zu übergeben.
Zur Analyse des Textes bringt z.B. die Klasse String einige Methoden mit.

Den Code spare ich mir dieses mal, denn womöglich bist Du auf das schon sehr lange gekommen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JItem während der Programmlaufzeit verändern AWT, Swing, JavaFX & SWT 8
G JavaFX BarChart während der Runtime aktualisieren AWT, Swing, JavaFX & SWT 4
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
B 3D-Grafik Java 3D Licht während Laufzeit ändern AWT, Swing, JavaFX & SWT 0
Joew0815 Dropdown meue während der Laufzeit ändern. AWT, Swing, JavaFX & SWT 6
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
H jprogressbar während datenabfrage anzeigen AWT, Swing, JavaFX & SWT 5
B ProgressBar während Berechnung AWT, Swing, JavaFX & SWT 4
M Swing JList Item in andere JList während Ausführung AWT, Swing, JavaFX & SWT 4
M JLabel aktualsisieren während Verarbeitung AWT, Swing, JavaFX & SWT 12
E Buttons während einer Berechnung deaktivieren AWT, Swing, JavaFX & SWT 6
D JTable Mausevents, während editiert wird AWT, Swing, JavaFX & SWT 5
T Swing JFrame blockieren während anderes JFrame offen ist AWT, Swing, JavaFX & SWT 2
R Wie Vorgehen bei fundamentaler Veränderung des Layouts während des Programmablaufs? AWT, Swing, JavaFX & SWT 19
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X Tabelle während Funktionsaufruf aktualisieren AWT, Swing, JavaFX & SWT 11
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
J Lazy Loading eine JTree während Scrollen AWT, Swing, JavaFX & SWT 11
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
P repaint während Thread läuft AWT, Swing, JavaFX & SWT 9
S Swing Während Frame verschoben wird... AWT, Swing, JavaFX & SWT 2
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
T Swing Dialoginhalt automatisch anpassen während Größenänderung AWT, Swing, JavaFX & SWT 2
D Swing Anzeige während eines Ladevorganges AWT, Swing, JavaFX & SWT 6
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
S Java3D: Alle Objekte in BranchGroup löschen während Laufzeit AWT, Swing, JavaFX & SWT 3
D JTable während edit kein update machen lassen AWT, Swing, JavaFX & SWT 2
M SWT Mutter-Shell blocken während Tochter-Shell noch offen ist AWT, Swing, JavaFX & SWT 6
S Swing DnD: Image während Drag-Operation ändern AWT, Swing, JavaFX & SWT 3
M Swing JTable während Laufzeit beschreiben AWT, Swing, JavaFX & SWT 14
S Objekt wird während Endlosschleife nur einmal bewegt AWT, Swing, JavaFX & SWT 2
O Zeichnene auf ein Jpanel während der Laufzeit des Programms AWT, Swing, JavaFX & SWT 2
J GUI (JTable) während Rekursion aktualisieren AWT, Swing, JavaFX & SWT 4
M Erzeugen von Komponenten während der Laufzeit AWT, Swing, JavaFX & SWT 6
S Methode während ihrer Laufzeit abbrechen AWT, Swing, JavaFX & SWT 6
P GUI-Updaten während eines externen Prozesses AWT, Swing, JavaFX & SWT 2
C jComboBox während eingabe kontextabhängig vorausfüllen AWT, Swing, JavaFX & SWT 3
DeeDee0815 LookAndFeel während der Laufzeit verstellen AWT, Swing, JavaFX & SWT 4
G Wie Fenstergröße während Fenstergrößenänderung auslesen? AWT, Swing, JavaFX & SWT 2
F Aktualisierung während MOUSE_PRESSED AWT, Swing, JavaFX & SWT 4
D Widget/Control während Laufzeit durch ein anderes ersetzen AWT, Swing, JavaFX & SWT 3
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
B JButton während der Laufzeit in JLabel umwandeln AWT, Swing, JavaFX & SWT 3
P JTextArea veränder Größe während Laufzeit; GridBagLayout AWT, Swing, JavaFX & SWT 8
Redfrettchen JTextArea während einer DocumentListener Notification ändern AWT, Swing, JavaFX & SWT 5
D JComponets während der Laufzeit in ein Panel einfügen AWT, Swing, JavaFX & SWT 2
Y Aktion während gedrückter Taste AWT, Swing, JavaFX & SWT 2
B Kein Repaint während eines Prozesses. AWT, Swing, JavaFX & SWT 5
D JTable Header während Laufzeit ändern. AWT, Swing, JavaFX & SWT 3
L JTable - Button Speichern während des Editieren AWT, Swing, JavaFX & SWT 3
S LaF - switcht erst während des Runs auf System.LaF AWT, Swing, JavaFX & SWT 2
M während der Roboter arbeitet sollte man sich raushalten. AWT, Swing, JavaFX & SWT 6
m@nu Dialog während warten anzeigen AWT, Swing, JavaFX & SWT 3
M GUI Update während der Verarbeitung einer Methode AWT, Swing, JavaFX & SWT 3
G Textfeldgröße während Eingabe ändern AWT, Swing, JavaFX & SWT 4
M In einem JFrame Menüs & . während der Laufzeit verändern AWT, Swing, JavaFX & SWT 6
L Constraints während der Laufzeit verändern AWT, Swing, JavaFX & SWT 7
D JTable Spalten mit Namen während der Programmlaufzeit hinzuf AWT, Swing, JavaFX & SWT 5
Sin137 Automatischer Vervollständigung einer Texteingabe AWT, Swing, JavaFX & SWT 10
B Swing Autokorrektur der Texteingabe AWT, Swing, JavaFX & SWT 6
G JOptionPane.showInputDialog(): Texteingabe und Fokus AWT, Swing, JavaFX & SWT 3
I Texteingabe des Benutzers in der GUI verwenden AWT, Swing, JavaFX & SWT 5
R Texteingabe abfangen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen


Oben