Toon posts:

[java] Meerdere kleuren in een TextArea

Pagina: 1
Acties:

Verwijderd

Topicstarter
Kwil een soort van code - editor maken in java, her belangrijkste deel in natuurlijk "de editor" maar ik krijg het niet voor elkaar een TextArea te vinden die de mogelijkheid biedt om meerdere kleuren text te hebben. Tevens levert google mij ook niet echt veel op, veel java chat applets die je moet kopen of hele grote projecten waar ik weinig aan heb.

Ik zou natuurlijk zelf een soort van container kunnen maken en daar labels in maken, een label per zin / als er verschillende kleuren in een zin voorkomen meerdere labels per zin. Maar ik vond dit nogal omslachtig en zou dus graag willen weten of er niet al een bestaand class ofzo is, ofdat jullie een betere, slimmere, snellere manier weten..

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Werken met JTextComponent en java is een ware nachtmerrie: het is complex en traag. Als vervanger heb ik hiervoor dit gebruikt. En dat was onderdeel hiervan.

Verwijderd

Topicstarter
Ben dus toch zelf aan de gang gegaan, alleen al om wat extra ervaring te krijgen in het coden met java.

Ik heb twee files:
TimTextArea.java:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.awt.*;
import javax.swing.*;

import TimTextAreaPainter;

class TimTextArea extends JComponent{
    
    private TimTextAreaPainter painter;
    
    public TimTextArea(){
        painter = new TimTextAreaPainter(this);     
    }
        
}


en
TimTextAreaPainter:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import javax.swing.*;
import java.awt.*;

class TimTextAreaPainter extends JComponent{
    
    TimTextArea TextArea;
    public TimTextAreaPainter(TimTextArea TextArea){
        this.TextArea = TextArea;
    }       
    
    public void paint(Graphics gfx){
        gfx.setColor(new Color(255,0,0));
        gfx.drawRect(10,10,200,200);
        System.out.print("Repaint u mij maar.\n");
        
    }
    
}

Ik krijg het dus alleen niet voor elkaar om de Painter class in te stellen als "paint class" van mijn textobject.. Kheb al wat zitten spitten in de classes van JEdit maar ben der niet echt wijzer van geworden..

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Hmmzz.. je gaat hier ook meteen bezig met een behoorlijk (lees gigantisch) complex onderwerp. Ik heb eens zoiets gemaakt voor een JEditorPane door de StyledDocument aan te passen (dus niet zoals jij het zelf te gaan painten). In de StyledDocument kan je dus tekst opmaken en je kan eventueel ook luisteren als er tekst in wordt getyped en zo kun realtime gaan syntax highlighten. Maar ik vond het een drama.

Die 1e JEdit link is gewoon een bean waar je in principe niet veel aan hoeft te veranderen om het te gebruiken (eigelijk niets), dus die zou ik echt gebruiken.

En verder zijn er veeeeeel betere onderwerpen waardoor je java beter leert kennen. Java leren mbv de JTextComponent is hetzelfde als scheikunde leren uit een japans scheikunde boek ;)

hier heb je nog een paar links:
http://java.sun.com/produ...ext/editor_kit/index.html
http://java.sun.com/produ.../text/overview/index.html
http://java.sun.com/produ...s/architecture/index.html