JTabbedPane und JTextarea-Zuordnung

Status
Nicht offen für weitere Antworten.

gorgophol

Mitglied
Halöchen,

ich hatte die (verrückte?) Idee meinen LaTex-Editor (s. http://www.java-forum.org/de/viewtopic.php?t=12717&start=15) in einer neuen Version zusätzlcih mit der Option Tabs auszustatten, wie man das aus guten Browsern und HTML-Editoren kennt. Der User soll also beim Start entscheiden wie er arbeiten möchte, daher muss ich sowohl die alte Version lauffähig halten, als auch die neuen Optionen anbieten können. Das hab ich soweit ganz gut über die Konstruktoren gelöst. Also kein Problem.
Für die Tabs verwende ich eine JTabbedPane. Für die Edit-Komponente habe ich Klasse JTextArea erweitert und mit Funktionen wie speichern usw versehen, damit jedes Element einzeln verarbeitet werden kann (= Klasse SaveableEdit (SE)). Die einzelnen SE's hängen dann in der TabbedPane in der Hauptklasse. Maximal erlaube ich 10 Tabs.

Um zu wissen, welches Tab gerade aktiv ist, frag ich den Tab-Index ab und ermittle daraus die aktive SE. Gleichzeitig hab ich in einem Array (Größe 10) boolean-werte gespeichert, die anzeigen ob das jeweilige Tab schon gespeichert ist oder nicht. Und ein String-Array in dem ich die passenden Filenamen ablege, damit ich beim speichern nicht immer wieder die Datei angeben muss, wenn ich schon gespeichert hab. Wenn cih also im Editor dann auf speichern klicke, wird das aktive Tab ermittelt, daraus die aktive SE und mit dem Index der String aus dem Array gelesen und die Datei gespeichert.

Soweit so gut. Dann fiel mir nur dummerweise ein, dass man ja auch die Tabs einzeln schließen können müsste. Trotzdem muss ja die Anzahl von 10 möglichen Tabs bleiben. Also kann ich die dann acuh wieder öffnen. Das geht über nen Zähler ganz gut. Nur durch ständiges Schließen und Öffnen kann ich den Index der TabbedPane praktisch vergessen. Alle Zuordnungen gehen in die Hose. (von einem UndoListener, der an einem Document hängt mla ganz zu schweigen). Mein erster Ansatz war das über zwei Hashtables zu lösen, wobei eine die Zuordnung von SE zum Array-Index der Dateien speichert und eine andere die wechselnde Zuordnung von Tab-Index zu SE. Ich wollte also zunächst die jeweils gültige SE ermitteln und dann mit der zweiten Hashtable das gültige File. Leider funktioniert zwar nominell die Zuordnung der ersten Hashtabel (hab ich mir ausgeben lassen) aber wenn ich versuche den Value der ersten als Key der Zweiten anzugeben, gehts komplett schief. Und das ist auch unheimclih komplex und fehleranfällig.

Hat jemand eine idee, wie man das ganze erheblich vereinfachen könnte, oder zumindest wie ich an die SE komme, ohne über den Index der TabbedPane zu gehen?

Danke,

Gorgophol
 
R

Roar

Gast
warum machst du nicht einfach ne klasse EditorTab (so heisst sie bei mir :D) die von SaveableEdit (oder besser JScrollPane mit einer eingebetteten SaveableEdit) erbt. Speicher DORT den saved status und das File objekt zur datei.
den EditorTab fügst du als Component der tabebdpane hinzu. dann brauchst du keinen array/liste mehr und kannst mit getComponentAt() an den EditorTab kommen.
 

gorgophol

Mitglied
Hm. Ich hatte Probleme, wenn mit der JScrollPane-Zuordnung damals. Da hab ichs noch mit ner normale TextArea versucht. Aber wenn das bei dir funktioniert, hab ichs damals wohl nur irgendwie falsch versucht.

Den Saved-status und die Datei hatte ich schon mal versucht direkt in der Saveable-Edit zu speichern. Aber das geht natürlich net, weil man die richtige Komponente net kriegt. ...

ich versuchs nochmal so, wie dus vorgeschlagen hast. Dann wäre das Problem ja auch gelöst :) Danke schonmal.

Hast du zufällig auch ne passende Lösung für Undo und Redo?
 

gorgophol

Mitglied
Hm. Nee danke *g*

Das von sun hab ich ja selbst gelesen und versucht hinzukriegen.
Für ein Fenster ging das auch ganz toll, aber schon bei zwei Tabs krieg ich ganz komische Phänomene. Und leider nicht immer die gleichen ... Bis hin zu dass gar nix mehr rückgängig gemacht wird, obwohl ich genau weiß, dass ein UndoableEditEvent stattgefunden hab, weil ich darüber nämlcih bestimme ob mein Speichersymbol in der Toolbar aktiv sein soll ...

Von daher hatte ichg ehofft, es hätte jemand ne bessere Lösung schon zur hand :) Ich verzweifel daran nämclih seit 2 Monaten.
 
R

Roar

Gast
du musst natürlich für jede SaveableEdit seinen eigenen UndoManager speichern. wenn du einen anderen tab auswählst musst du natürlich auch die undo und redo buttons aktualisieren. bei klick musst du dir auch den aktuellen undomanager holen und dort ein undo/redo performen. ich nehme an an eine dieser sachen hast du nicht gedacht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JTextArea + JScrollPane + JTabbedPane AWT, Swing, JavaFX & SWT 8
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
I JTabbedPane mit DnD, [x]-Schaltfläche, [+]-Schaltfläche usw. AWT, Swing, JavaFX & SWT 1
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
D JTabbedPane GUI Experimente AWT, Swing, JavaFX & SWT 4
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
B StateChangeListener auf JTabbedPane AWT, Swing, JavaFX & SWT 5
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
F JTabbedPane bestimmten Tab ansprechen AWT, Swing, JavaFX & SWT 13
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
BRoll JTabbedPane setTitleAt OutOfBoundsExc AWT, Swing, JavaFX & SWT 4
K JTabbedPane Tab Markierung / Selektion AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
L JTabbedPane Closebutton integrieren AWT, Swing, JavaFX & SWT 6
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
K Swing JTabbedPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 19
B Swing JTabbedPane in JApplet -> Reiter bei Aktualisation mehrmals zu sehen AWT, Swing, JavaFX & SWT 3
M JTabbedPane -> setSelectedIndex funzt nicht AWT, Swing, JavaFX & SWT 3
D Bestimmtes JPanel innerhalb eines JTabbedPane ansprechen AWT, Swing, JavaFX & SWT 2
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
hdi Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 2
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S JTabbedPane Problem AWT, Swing, JavaFX & SWT 3
S JTabbedPane AWT, Swing, JavaFX & SWT 4
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
G JTabbedPane - Länge der Reiter beeinflussen? AWT, Swing, JavaFX & SWT 9
G Swing JTabbedPane Was für ein Border wird da um die Tabs gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Komponentengröße in JTabbedPane AWT, Swing, JavaFX & SWT 7
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
M CloseButton bei JTabbedPane AWT, Swing, JavaFX & SWT 4
P Swing JTabbedPane mit JButton einen anderen Tab anzeigen AWT, Swing, JavaFX & SWT 9
D JTabbedPane zentrieren AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
Mike90 JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 17
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Swing Tab in JTabbedPane AWT, Swing, JavaFX & SWT 5
A JFrame > JTabbedPane > JPanel > addKeyListener AWT, Swing, JavaFX & SWT 18
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
H Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 9
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
S Border von JTabbedpane-Tab? AWT, Swing, JavaFX & SWT 3
M JTabbedPane Docable? AWT, Swing, JavaFX & SWT 3
L Swing JTabbedPane - Index vom Tab AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
F Borders von JTabbedPane und JScrollPane AWT, Swing, JavaFX & SWT 5
W JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 4
G Swing JTabbedPane vergrößern AWT, Swing, JavaFX & SWT 2
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
D Tabs von JTabbedPane stylen AWT, Swing, JavaFX & SWT 6
U JTabbedPane: Layout-Probleme bei addTab zur Laufzeit AWT, Swing, JavaFX & SWT 2
1 JTabbedPane Tab ausdehnen AWT, Swing, JavaFX & SWT 3
F Swing JTabbedPane: Zur Laufzeit die Tabreihenfolge ändern AWT, Swing, JavaFX & SWT 2
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
D Swing Probleme bei mit JTabbedPane.getChildren() AWT, Swing, JavaFX & SWT 4
I Swing Randnutzung bei JTabbedPane.LEFT AWT, Swing, JavaFX & SWT 2
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
P JTabbedPane und fill? AWT, Swing, JavaFX & SWT 2
D Swing mehrere JTable in separaten Tabs einer JTabbedPane AWT, Swing, JavaFX & SWT 2
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
R JTabbedPane Selektion verfolgen? AWT, Swing, JavaFX & SWT 2
byte JTabbedPane - Insets entfernen AWT, Swing, JavaFX & SWT 7
S JTabbedPane child setBounds AWT, Swing, JavaFX & SWT 4
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
V Extended JTabbedPane AWT, Swing, JavaFX & SWT 7
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
A JTabbedPane Tabwechsel rausfinden AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
T Wie aktualisiere ich die Contents einer JTabbedPane? AWT, Swing, JavaFX & SWT 3
G JTabbedPane zentiert alles AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben