Swing Von anderer Klasse auf Eigenschaften einer Komponente zugreifen

Airwolf89

Aktives Mitglied
Hallo,

ich habe mal eine Frage. Ich habe eine GUI, mit jeder menge Komponenten drauf. Nun habe ich noch einen Frame mit einer Auswahl drauf (Radiobuttons). Beim treffen einer Auswahl möchte ich auf die Eigenschaften von Komponenten auf meinem ersten GUI zugreifen können, also z.B. bei einer Tabelle die Anzahl der Spalten ändern. Wie mache ich das am besten?

Danke im voraus.
 
S

SlaterB

Gast
laufen die beiden Frames im gleichen Programm oder in zwei verschiedenen, bei letzteren musst du erstmal eine Kommunikation einrichten, z.B. über Sockets,
ansonsten müssen sich die Objekte kennen, Referenzen übergeben werden usw.,

zur Änderung kann das zu ändernde Frame nun eine ausführliche API anbieten, getComponentAtXY() oder gleich getTableSowieso(), welches eine eigene Klasse ist,
oder einfach nur eine Methode changeZOnTableSowieso(parameter), was immer du am besten brauchst, um es für das zweite Frame so einfach wie möglich zu machen,

oder du verzichtest auf jegliches Angebot und das zweite Frame hat wirklich nur das Frame-Objekt vom ersten,
dann muss es darauf Standard-API-Methoden (getComponent()) sowie per Reflection zugreifen um irgendwelche Dinge zu setzen und changed-Ereignisse auszulösen, das kann sehr unschön werden,

über Sockets ist das auch nicht zu machen, da muss die Gegenseite wenigstens ein paar entsprechende Logik-Klassen anbieten um beliebiges per Reflection zu ändern, das wäre eine heftige Sicherheitslücke ;)
 

Airwolf89

Aktives Mitglied
Hi,

danke erstmal für den Tipp das Objekt gleich zu übergeben. =)

Also die beiden Frames liegen im gleichen Programm.

Habe das jetzt mal folgendermaßen probiert:

Java:
TableColumn col = new TableColumn();

        for (int i = 0; i < lColumn; i++) {
            col = TBL_Entities.getColumnModel().getColumn(i);
            TBL_Entities.removeColumn(col);
        }
        TBL_Entities.repaint();

        col = new TableColumn();
        for (int i = 0; i < fieldCount[0]; i++) {
            TBL_Entities.addColumn(col);
        }
        TBL_Entities.repaint();
        this.dispose();

Ich habe dem zweiten Frame die Tabelle und deren Spaltenanzahl übergeben.
TBL_Entities ist diese Tabelle, in lColumn befindet sich die Spaltenanzahl.

Nur irgendwie löscht er jetzt jede zweite Spalte und schmeißt mir danach ne ArrayIndexOutOfBounds Exception mit dem Hinweis 15 >= 15.

Das mit dem Spalten hinzufügen klappt soweit, hatte ich schon getestet.

Was hab ich hier falsch gemacht? Oder gibts nen anderen eleganteren Weg die Spaltenzahl neu zu definieren und die Tabelle mit dieser neuen Spaltenzahl dann anzeigen zu lassen?

Danke im voraus.
 
S

SlaterB

Gast
eleganter ist glaube ich immer ein eigenes TableModel mit der Methode getColumnCount()
und im Falle des DefaultTableModels fireTableStructureChanged() danach
How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

was hast du denn bisher für Daten in der Tabelle? wenn das Model von 15 Spalten ausgeht, kann man vielleicht nicht einfach so eine löschen

-------
Zeile 9 bis 12 sind etwas suspekt, wenn du mehrere Columns hinzufügenwillst, dann doch nicht mehrfach dasselbe Objekt,
an dieser Stelle muss man nicht sparen, ruhig ein 'new TableColumn()' pro Schleifendurchlauf,
mit TableModel wäre aber wahrscheinlich auch dieser Code obsolet
 

Airwolf89

Aktives Mitglied
Also, es sieht folgendermaßen aus:

Die Tabelle soll Materialien oder Kunden anzeigen.
Es gibt verschiedenartige Materialien. Jedes Material hat eine festgelegte Anzahl an Eigenschaften, die Infos hole ich aus einer Datenbank. Zu Beginn ist die Tabelle leer, hab ihr 30 Spalten gegeben. Nun sollen im Endeffekt nach Auswahl einer Produktkategorie in dieser Tabelle alle gelisteten Materialien in der Tabelle angezeigt werden. Deshalt brauche ich eine Möglichkeit je nach ausgewählter Kategorie der tabelle eine festgelegte Anzahl Spalten zu geben. Ich könnte zwar der Tabelle einfach nur 30 Spalten geben und die entsprechend füllen, aber das finde ich eher unschön.

fireStructureChange habe ich schonmal gesehen im Netz, allerdings kann ich diese Methode nirgends finden, bzw. ausführen, wird nicht gefunden.
 
S

SlaterB

Gast
> im Falle des DefaultTableModels fireTableStructureChanged()
bzw. genauer: in AbstractTableModel enthalten, von dem sollte man zumindest erben bei eigenen Models, sonst muss man gar die Listener selber verwalten + fireXY-Methoden natürlich

bei anderen Models ist das gegebenenfalls nicht da, auch im Interface nicht

> allerdings kann ich diese Methode nirgends finden, bzw. ausführen, wird nicht gefunden.

tja ich kenne deinen Code nicht,
falls du kein eigenes Model benutzt, kannst du versuchen, das vorhandene auf DefaultTableModel zu casten
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
J Bild von anderer Klasse will nicht laden AWT, Swing, JavaFX & SWT 1
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
S per Button Variableninhalt aus anderer Klasse holen AWT, Swing, JavaFX & SWT 3
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
W Paint-Methode in anderer Klasse funktioniert nicht AWT, Swing, JavaFX & SWT 7
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
M Swing Array aus anderer Klasse AWT, Swing, JavaFX & SWT 6
H JTable von anderer Klasse aus füllen AWT, Swing, JavaFX & SWT 6
D JSplitPane -> setRightComponent aus anderer Klasse AWT, Swing, JavaFX & SWT 3
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
J JPanel mit anderem Panel aus anderer Klasse setzen AWT, Swing, JavaFX & SWT 4
M Swing JFrame aus anderer Klasse starten/anzeigen AWT, Swing, JavaFX & SWT 2
D Swing JTextField aus anderer Klasse aktualisieren AWT, Swing, JavaFX & SWT 2
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
C private Panel anderer Klasse verändern AWT, Swing, JavaFX & SWT 11
kniffel JMenuBar aus anderer Klasse AWT, Swing, JavaFX & SWT 10
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
A Strings an Textarea anderer Klasse append(en) AWT, Swing, JavaFX & SWT 12
H JPanel aus anderer Klasse laden? AWT, Swing, JavaFX & SWT 4
G paint() Methode aus anderer klasse aufrufen? AWT, Swing, JavaFX & SWT 6
K Auf Textfeld von anderer Klasse aus zugreifen AWT, Swing, JavaFX & SWT 14
R Komponente (Frame) in anderer Klasse füllen AWT, Swing, JavaFX & SWT 18
H JPanel überschreiben aus anderer Klasse AWT, Swing, JavaFX & SWT 2
A Components in einer ArrayList aus anderer Klasse speichern AWT, Swing, JavaFX & SWT 8
N Actionlistener auf Button in anderer Klasse AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
J CellFactory in Abhängigkeit von anderer Zelle AWT, Swing, JavaFX & SWT 4
T Swing Label aus anderer Methode bearbeiten AWT, Swing, JavaFX & SWT 2
H Swing Arbeitsspeicherauslastung anderer Programme grafisch darstellen AWT, Swing, JavaFX & SWT 16
Z Bei Klick auf JButton soll ein anderer JButton erscheinen AWT, Swing, JavaFX & SWT 4
A Applet main class aus anderer main class aufrufen AWT, Swing, JavaFX & SWT 15
M Komponenten in anderer Reihenfolge anzeigen AWT, Swing, JavaFX & SWT 4
T Fragmente anderer Fenster im Programmfenster AWT, Swing, JavaFX & SWT 6
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
J Swing JTable, jede Zelle ein anderer Title im TitledBorder AWT, Swing, JavaFX & SWT 5
A Zeichnen auf JFrame aus anderer class heraus AWT, Swing, JavaFX & SWT 12
G JTable in Spalte von anderer JTable nicht editierbar AWT, Swing, JavaFX & SWT 7
E etwas anderer rahmen. AWT, Swing, JavaFX & SWT 2
K jtree: nur "first node" in anderer hintergrundfarb AWT, Swing, JavaFX & SWT 4
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
_user_q Versionscode aus build.gradle in Java-Klasse ausgeben lassen AWT, Swing, JavaFX & SWT 14
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
T JavaFX TableColumn in separate Klasse auslagern AWT, Swing, JavaFX & SWT 7
Monokuma KeyEvent in der Canvas Klasse AWT, Swing, JavaFX & SWT 0
B Was würden Profis an meiner Klasse verbessern? AWT, Swing, JavaFX & SWT 1
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
S Stream API, Anonyme Klasse AWT, Swing, JavaFX & SWT 8
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
F Jtree aus Klasse mit Arraylisten AWT, Swing, JavaFX & SWT 1
L Javafx Controller Klasse in Maven AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
J 2D-Grafik Background Image Klasse AWT, Swing, JavaFX & SWT 14
M Eigene Klasse mit Grafikobjekten schreiben AWT, Swing, JavaFX & SWT 4
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
F AWT Robot Klasse Screenshot nach Pixelmustern in bestimmten Radius um Bildschirmmittelpunkt absuchen AWT, Swing, JavaFX & SWT 13
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
N JavaFX Erweitern der Line(Shape)-Klasse AWT, Swing, JavaFX & SWT 1
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
A JavaFX Von Klasse auf Controller Inhalt zugreifen AWT, Swing, JavaFX & SWT 9
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
J Eigene Klasse auf Basis Textfield in SceneBuilder anzeigen AWT, Swing, JavaFX & SWT 4
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
J JavaFX Mehrfache Benutzung von Methoden einer Klasse AWT, Swing, JavaFX & SWT 17
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
B Swing GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 4
B Klasse mit ArrayList AWT, Swing, JavaFX & SWT 1
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben