Swing Document-Structure; Element

Status
Nicht offen für weitere Antworten.

diggaa1984

Top Contributor
hiho,

ich habe schon länger versucht herauszubekommen, welche Textabschnitte ich mit
public interface Element#getElement(int index)
in meinem DefaultStyledDocument immer bekomme.
Momentan nutze ich
Java:
Element root = this.getDefaultRootElement()
root.getElement(root.getElementIndex(startOffset)).getStartOffset()
und bekomme damit den Zeilenanfangsoffset, welcher zum übergebenen offset gehört, aber das war mehr geraten/probiert etc. Gibt es in der API oder sonst wo eine Möglichkeit die interne Struktur solcher Dcouments anzuschauen?
 

KrokoDiehl

Top Contributor
Hoi.
Also ich beschäftige mich derzeit auch etwas mit dem javax.swing.text.Document, aber habe auf deine Frage keine direkte Antwort.
In der API gibt es zwar hübsche Bildchen, aber kA ob die dir weiterhelfen ;)
Ich habe aber gesehen, dass das Document und Element Getter-Methoden zum durchlaufen der Struktur hat. Ich habe es selbst nie gemacht, aber im Grunde erreicht man darüber alle Elemente im Dokument. Ob man nun deren Hierarchie (die baumähnlich ist) verstehen oder nachvollziehen kann, ist was anderes. In dem Punkt kann ich dir leider nicht weiterhelfen. Ich denke es variiert auch start zwischen den Document-Implementierungen.

Aber z.B. rekursiv müsste man die Elementstruktur anschauen können:

Java:
Element[] roots = myDocument.getRootElements();
for (Element elem : roots)
    printElement( elem );

//...

void printElement(Element elem)
{
    if (elem == null)
        return;

    // hier elem irgendwie ausgeben / anschauen ...

    // Rekursion
    for (int i = 0; i < elem.getElementCount(); i++)
        printElement( elem.getElement(i) );
}
...betrachte es bitte als Pseudocode :)
 

diggaa1984

Top Contributor
hm ich habe eine Seite gefunden in der die Hierarchie für StyledDocuments erklärt wird:
Core Swing advanced programming: Google Book

grob:
Code:
<section>
    <paragraph diverseAttribute >    <!-- erste zeile >
    <content> [startOffset,endOffset][text]    <!-- erste zeile, erster teil >
    <content> [startOffset,endOffset][text]    <!-- erste zeile, zweiter teil >
    <paragraph diverseAttribute>     <!-- zweite zeile >
    <content> [startOffset,endOffset][text]    <!-- zweite zeile, komplett >
</section>

paragraph = BranchElement
content = LeafElement

ich frage mich grad (und suche eigentlich auch), ob ich mit einer gegebenen Methode direkt auf die content-elemente zugreifen kann, wenn ich einen offset gegeben habe. Irgendwie erwische ich intern immer nur paragraphs, also komplette Zeilen. Ich wollte aber nich noch zusätzlich erst das child suchen was dem offset am nächsten kommt.

sowas wie getNearestLeafElement(int offset) :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
TheWhiteShadow Swing Document Text Position in Pixel AWT, Swing, JavaFX & SWT 2
S Serialisierung Document - java.io.InvalidClassException AWT, Swing, JavaFX & SWT 8
B setText() auf TextField mit Document AWT, Swing, JavaFX & SWT 2
A Herausfinden welches Document gesetzt ist AWT, Swing, JavaFX & SWT 4
U Klasse Document ! AWT, Swing, JavaFX & SWT 2
A Wie JTextFields über Document disablen? AWT, Swing, JavaFX & SWT 3
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
G FX warten bis ein anderes GUI Element ausgewählt wurde AWT, Swing, JavaFX & SWT 8
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
M Internal Frames und Canvas-Element AWT, Swing, JavaFX & SWT 9
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
ImperatorMing JavaFX Übersicht - Welches Element kann welches Erreignis AWT, Swing, JavaFX & SWT 3
D Swing "blaues" Element aus JComboBox erhalten AWT, Swing, JavaFX & SWT 6
F JavaFX Custom ListView erstellt ghost Element AWT, Swing, JavaFX & SWT 3
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
L JavaFX Hover Effekt über das Parent Element AWT, Swing, JavaFX & SWT 4
domjos1994 JavaFX Element auswählen auf dem der Cursor ist AWT, Swing, JavaFX & SWT 1
M Ein Element in mehreren JList selektieren AWT, Swing, JavaFX & SWT 5
R GUI Element in einer Methode aktualisieren (JTextPane) AWT, Swing, JavaFX & SWT 13
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
P Swing Nach removeAll() noch 1 Element vorhanden AWT, Swing, JavaFX & SWT 0
K Swing GUI Element wird nicht skaliert AWT, Swing, JavaFX & SWT 6
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
E selektiertes Element aus JList zurückgeben AWT, Swing, JavaFX & SWT 7
H Swing Element aus JComboBox auswählen AWT, Swing, JavaFX & SWT 2
C click auf JButton und darunter liegendes element AWT, Swing, JavaFX & SWT 5
B Element schrittweise verschieben AWT, Swing, JavaFX & SWT 2
S Ausschluss bei Klick auf GUI Element AWT, Swing, JavaFX & SWT 6
GianaSisters AWT Per Button neues Element auf den jPanel setzen AWT, Swing, JavaFX & SWT 6
M gleiches Element in JList mehrmals hintereinander auswählen AWT, Swing, JavaFX & SWT 6
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
F Element anzeigen / erstellen. Maus vs Controller AWT, Swing, JavaFX & SWT 7
M Frage nach Swing Element AWT, Swing, JavaFX & SWT 3
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
W SWT Resize Tree-Element AWT, Swing, JavaFX & SWT 3
Landei Swing JTree - Element mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 4
B Swing: letztes Element wird immer auf Fenstergröße gezogen AWT, Swing, JavaFX & SWT 3
F Swing Paint mit Canvas Element AWT, Swing, JavaFX & SWT 35
G JTree Element wird nicht markiert AWT, Swing, JavaFX & SWT 2
X Swing Swing Element gesucht -> um als Konsole zu fungieren AWT, Swing, JavaFX & SWT 4
H GridBagLayout Element komplett ausfüllen AWT, Swing, JavaFX & SWT 5
N Nur ein Element sichtbar beim Drucken eines JFrame AWT, Swing, JavaFX & SWT 9
C Aktion durchführen bei Klick auf ein Element im JTree (Untersch. Klick und Doppklick) AWT, Swing, JavaFX & SWT 5
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
H Swing [gelöst]Neues Swing Element erstellen AWT, Swing, JavaFX & SWT 4
D Problem an Parent Element ranzukommen. AWT, Swing, JavaFX & SWT 7
G JList und ein neues Element oben in der Liste einfügen AWT, Swing, JavaFX & SWT 4
U Ein Element in einer JList farbig hervorheben ! AWT, Swing, JavaFX & SWT 2
ABstraCT JCombobox dynamisch füllen (erstes Element Problem) AWT, Swing, JavaFX & SWT 4
N JPopupMenu - ausgewähltes Element zurückgeben AWT, Swing, JavaFX & SWT 2
V Element zu Listenfeld hinzufügen AWT, Swing, JavaFX & SWT 6
S MouseListener zurückverfolgung auf element. AWT, Swing, JavaFX & SWT 7
A Element aus einer JList löschen AWT, Swing, JavaFX & SWT 5
zilti Swing-Element verändern AWT, Swing, JavaFX & SWT 13
N in jScrollPane, neues Swing Element hinzufügen AWT, Swing, JavaFX & SWT 6
M Zwei Element auf ein Contentpane AWT, Swing, JavaFX & SWT 45
G Listener (anonyme Klasse) jedem Element eines Array zuweisen AWT, Swing, JavaFX & SWT 5
V Wie heisst dieses GUI-Element? Gibt es sowas für Swing? AWT, Swing, JavaFX & SWT 10
E JTree selektiertes Element AWT, Swing, JavaFX & SWT 3
S Swing Element für Explorer-Fenster darstellung AWT, Swing, JavaFX & SWT 13
G JCombobox - Element richtig anzeigen AWT, Swing, JavaFX & SWT 5
W Element im JTree farblich markieren AWT, Swing, JavaFX & SWT 6
N JTree mehrere/ohne Root Element/e AWT, Swing, JavaFX & SWT 2
M JLIST - Ein Element selektieren und weiterverarbeiten! AWT, Swing, JavaFX & SWT 2
C leeres Element in Gridlayout einfuegen AWT, Swing, JavaFX & SWT 3
E Wie heißt dieses graphische Element (Bild inside)? AWT, Swing, JavaFX & SWT 2
G JTree. Neues Element hinzufügen und Selection beibehalten! AWT, Swing, JavaFX & SWT 3
D Element aus einer Methode heraus hinzufügen AWT, Swing, JavaFX & SWT 2
bummerland auf übergeordnetes element zugreifen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben