JTextArea mit Dos Caret

Stigma

Gesperrt
Ich weiß nicht weiter!

Was ich wissen möchte:
Wie kann ich den Zeiger im Textfeld Waagerecht anzeigen lassen, so
wie es die Eingabeaufforderung von Microsoft tut.

Welche Vermutung ich habe:
Wahrscheinlich ist es nur ein kleiner Befehl, oder man muss den Quellcode der
JTextArea umschreiben.

Was wünsche ich mir:
Das erste natürlich weil ich sonst die zweite Möglichkeit umsetzen muss.


Bin gespannt ob sich jemand damit beschäftigt hat?

Jede Meinung ist Herzlich Willkommen.
 
Zuletzt bearbeitet:
Moin!
Ein kleiner Befehl ist mir nicht bekannt. Auch mit einem Umschreiben der TextArea ist es nicht getan, weil wie der Zeiger aussieht, entscheidet der Zeiger(d.h. der Caret) immer noch selbst... Daher muss schon ein eigener Caret erstellt werden...

Code:
import javax.swing.text.DefaultCaret;
import java.awt.*;
import javax.swing.text.*;
import javax.swing.plaf.*;


public class DosBoxCaret extends DefaultCaret {
    
    
    public DosBoxCaret() {
        this.setBlinkRate(200);
    }
    
    public void paint(Graphics g) {
        if(isVisible()) {
            
            JTextComponent component = this.getComponent();
            TextUI mapper = component.getUI();
            Rectangle rec = null;
            
            try {
                rec = mapper.modelToView(component, this.getDot());
            } catch(Exception ex) {
                ex.printStackTrace();
            }
            g.drawLine(rec.x, rec.y +rec.height -5, rec.x+5, rec.y +rec.height -5);
        }
    }
    public void damage(Rectangle r) {
        if (r != null) {
            x = r.x;
            y = r.y;
            width = 6;
            height = r.height;
            repaint();
        }
    }
    
    
}


Code:
JTextArea area = new JTextArea();
area.setCaret(new DosBoxCaret());

*grüssle*
MeinerEiner
 
Ich werde es heute Abend nach der Arbeit gleich ausprobieren. Bin schon gespannt ob es klappen wird.

Danke für deine schnelle Hilfe.
 
Respekt

Ich habe es ausprobiert, es hat funktioniert, ich habe es meinen Bedürfnissen angepasst und ich bin zufrieden mit dem Ergebnis.

Großes Lob an MeinerEiner_80 (obwohl ich dein Bild nicht mag) du hast mir schnell und vor allem qualitativen Code geliefert.

Frage: Wie bist du auf die Lösung gekommen?
..........Was sind deine Quellen?
 
Moin!
Wie bist du auf die Lösung gekommen?
Was sind deine Quellen?
Neben einen Blick in die API Dokumentation schadet es bei solchen Sachen eigentlich nie, mal im Quellcode der Sun Klassen nachzuschauen, wie die das gelöst haben..
Vieles kann man ja übernehmen und eigentlich musste man ja nur statt nem senkrechten, nen waagerechten Strich zeichen ;)

*grüssle*
MeinerEiner
 
Zurück