Swing Dynamisch Objekte erzeugen

Atoyo

Mitglied
Hallöchen Java-Gemeinde,

folgendes Problem:
Ich bau an einer Swing-Oberfläche auf der in einem JScrolPane mehrere JPanels integriert sind in einem Gridlayout. Und nun habe ich in einer Datei die ich einlese mehrere Dinge die in diese Panels sollen, die ich jedoch erst erstellen kann, wenn ich während der Laufzeit die Datei auslese, da ich diese zusätzlich am Kopf der Oberfläche auswählen kann...

Jedes dieser JPanel im JscrollPane haben eine "Überbezeichnung", will heissen sind einem Thema für sich. In der Datei habe ich nun unterscheidlich viele "Unterbezeichnungen" die ich auf das JPanel mit einfügen muss. Schematisch mit "Überbezeichnungen" sieht das so aus:
___________________________
[] "Überbezeichnung"
___________________________
[] "Überbezeichnung"
___________________________

dabei stellen [] die JComboboxen zur Auswahl dar die ich benötige und _____ die Panelgrenzen.

Mein Problem ist nun, dass ich sobald ich eine der Comboboxen geclicked habe, aus der Datei dei dazu gehörigen "Unterbezeichnungen" sulesen will und je nach dem wieviele das sind wiederum dafür Comboboxen erstellen und um das graphisch halbwegs brauchbar zu gestalten noch dummylabels. Das Ganze soll dann in etwa so aussehen: (schaut hier net so aus wies soll, aber dank GridLayout formatiert der das ja richtig^^)

_________________________________________________
[] "Überbezeichnung" [] "Unterbezeichnung"
(Dummylabel) [] "Unterbezeichnung"
_________________________________________________
[] "Überbezeichnung" [] "Unterbezeichnung"
(Dummylabel) [] "Unterbezeichnung"
(Dummylabel) [] "Unterbezeichnung"
(Dummylabel) [] "Unterbezeichnung"
_________________________________________________

aus der Datei beziehe ich folgende Daten die, wie ich denke dafür relevant sind:
eine eindeutige ID (als String) in der Form xx.xx, sowie eine konkrete Bezeichung für die "Unterbezeichungen" (als String). Hab also beides in ein String[][] (1. DImension die ID, 2. Dimension die Bezeichnung) eingelesen.
Ich hatte mir nun gedacht, dass man die ID ohne den Punkt dazwischen prima als Objektname verwenden kann und die Bezeichnung halt als Bezeichnung was hinter der Combobox steht.
Also folgendes versucht:

Java:
for(int i = 0, j = 0; i < String[][].length; i++){
JComboBox cb + String[i][j] = new JComboBox(String[j][i]);
pZielpanel.add(cb+String[i][j]);
}

geht folglich net, sonst würd ich hier net fragen^^
Wenn ich bei Google suche kommen dann solche sachen wie: Geht in Java nicht. oder es gibt gar keine verwertbaren Aussagen dazu.

bin über jeden Rat dankbar.
 
S

SlaterB

Gast
bitte
http://www.java-forum.org/top-fragen/62032-fragen-variablennamen.html
lesen, obwohl du eigentlich schon Arrays kennst, aber Zeile 1 macht für sich natürlich gar keinen Sinn,
Zeile 2 und dann 3 auch nicht, Zeile 4 ist gelungen ( ;) )

erstmal von aller Aufregung beruhigen, GUIs, JComboBoxen und ähnlich kompliziertes vergessen und ganz langsam ein 'funktionieres Programm' anfangen,
z.B. eine einfache Klasse mit main-Methode, darin ein eindimensionales Array erstellen, befüllen und mit Schleife durchlaufen und ausgeben,
wenn das geschafft ist, dann hat man schonmal was, das würde schon gegen die schlimme Zeile 1 von deinen 4 Code-Zeilen helfen,
danach kann man anderes versuchen, ein zweidimensionales Array z.B.,
auch das Erstellen von meheren ComboBoxen zu einem Array kann man dort üben,
aber auch gerne langsam zum Ursprungsprogramm zurückkehren
 

CroniD

Aktives Mitglied
EDIT: Ach verdammt. Es war jemand schneller als ich. :)

Ich gehe richtig in der Annahme, dass du keine IDE benutzt? Solltest du besser mal tun. ;)

Außerdem Dokumentation lesen, dann coden.

JComboBox (Java Platform SE 6)
Galileo Computing :: Java ist auch eine Insel – 19.17 Auswahlmenüs, Listen und Spinner

Okay, und dann noch fix ein Code Beispiel zu deinem Problem soweit ich es verstanden habe:
Java:
import java.awt.GridLayout;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class DynJComboBox extends JFrame {

	public DynJComboBox() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		// test daten oder hier deine Datei einlesen
		String[][] values = {
				{"11.22", "Unterbezeichnung1"}, {"22.33", "Unterbezeichnung2"}
		};
		JPanel content = new JPanel(new GridLayout(0, 2, 5, 5));
		for (int i = 0; i < values.length; i++) {
			content.add(new JComboBox(new Object[] {values[i][0]}));
			content.add(new JLabel(values[i][1]));
		}
		setContentPane(content);
		pack();
	}
	
	public static void main(String[] args) {
		new DynJComboBox().setVisible(true);
	}
}

Allerdings ist vielleicht ein spezielles Objekt als Datencontainer besser als ein mehr-dimensionales Array.
Könnte zum Beispiel so aussehen:
Java:
public class DataContainer {
		
		private String id;
		private String unterbezeichnung;
		
		public DataContainer(String id, String unterbezeichnung) {
			this.id = id;
			this.unterbezeichnung = unterbezeichnung;
		}
		
		public void setId(String id) {
			this.id = id;
		}
		
		public String getId() {
			return id;
		}
		
		public void setUnterbezeichnung(String unterbezeichnung) {
			this.unterbezeichnung = unterbezeichnung;
		}
		
		public String getUnterbezeichnung() {
			return unterbezeichnung;
		}
	}
Könnte für einen übersichtlicheren Code sorgen. :)
 

Atoyo

Mitglied
erstma thx für die schnellen antworten ^.^

croni ich werd ma deinen vorschlag einbauen, ich tu mich immer noch etwas schwer mit containern daher das array :(
zum thema ide: ich würd eclipse eig als solche bezeichnen und damit arbeite ich.

das mein codeschnipsel müll is weiss ich, der sollte lediglich als verdeutlichung stehen als wenn ich das weiter versucht hätte zu umschreiben...


EDIT:

Java:
for (int i = 0; i < values.length; i++) {
            content.add(new JComboBox(new Object[] {values[i][0]}));
            content.add(new JLabel(values[i][1]));
        }
[/Java]
das war alles was mir fehlte bzw. net aufgefallen ist beim lesen. java ist auch eine insel und die api sind bei mir die ganze zeit offen und ich les da eig auch nach, hab ich wohl einfach was übersehen...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
L Dynamisch Objekte in Canvas zeichnen AWT, Swing, JavaFX & SWT 5
Airwolf89 Swing Dynamisch auf Objekte in einer GUI zugreifen AWT, Swing, JavaFX & SWT 10
W JavaFX Farben dynamisch anpassen AWT, Swing, JavaFX & SWT 4
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
A Swing JPanels dynamisch untereinander einfügen AWT, Swing, JavaFX & SWT 3
Wurstsemmel SWT MenuItem dynamisch hinzufügen AWT, Swing, JavaFX & SWT 2
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
S CombinedDomainXYPlot und dynamisch hinzugefügte subplots: Darstellungsprobleme AWT, Swing, JavaFX & SWT 3
K Liniendicke für Line Chart dynamisch ändern AWT, Swing, JavaFX & SWT 0
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
llabusch JavaFX Dynamisch alles vergrößern (wie im Browser) AWT, Swing, JavaFX & SWT 3
agent47 JavaFX TreeView Struktur dynamisch einlesen AWT, Swing, JavaFX & SWT 1
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D JavaFX Dynamisch erzeugte Checkboxen aus VBox auslesen AWT, Swing, JavaFX & SWT 3
I JTable dynamisch aus ArrayList befüllen AWT, Swing, JavaFX & SWT 3
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
T JPanel dynamisch erstellen AWT, Swing, JavaFX & SWT 4
G FormLayout dynamisch wachsend AWT, Swing, JavaFX & SWT 0
T JTable dynamisch mit ArrayList AWT, Swing, JavaFX & SWT 2
A Swing Logikaufgabe: Zeilenanzahl einer JTable mit 3d String dynamisch anpassen AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
P TableViewerColumn dynamisch erzeugen AWT, Swing, JavaFX & SWT 3
Kandum obj_JMenu.addMenuListener - variable Anzahl an JMenus / menulistenern & frame.setTitle() dynamisch AWT, Swing, JavaFX & SWT 7
A HELP: JFieldText dynamisch setzen -> langsam AWT, Swing, JavaFX & SWT 19
C Swing CardLayout dynamisch erweitern AWT, Swing, JavaFX & SWT 11
B Link eines Icons dynamisch gestalten AWT, Swing, JavaFX & SWT 2
P ScrollPane nach zeichnen dynamisch resize AWT, Swing, JavaFX & SWT 7
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
P Gifs dynamisch auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E Breite eines JButton dynamisch ändern AWT, Swing, JavaFX & SWT 3
P Swing Dynamisch zeichnen mit Shapes wie Rectangle2D.Float ? AWT, Swing, JavaFX & SWT 6
C SWT - widget dynamisch erzeugen und anzeigen AWT, Swing, JavaFX & SWT 10
C Tooltip dynamisch setzen AWT, Swing, JavaFX & SWT 7
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
X jTextFields dynamisch initialisieren AWT, Swing, JavaFX & SWT 2
L Label dynamisch awt AWT, Swing, JavaFX & SWT 2
H Swing Symbol in Taskleiste dynamisch aus- bzw. einblenden AWT, Swing, JavaFX & SWT 14
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Panels Dynamisch zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 2
J Java 2D - dynamisch zeichnen AWT, Swing, JavaFX & SWT 4
A AWT HSB-Farben dynamisch berechnen AWT, Swing, JavaFX & SWT 5
P Dynamisch Sortieren AWT, Swing, JavaFX & SWT 2
B Swing Dynamisch Elemente in JScrollPane hinzufügen AWT, Swing, JavaFX & SWT 6
Airwolf89 Swing Tabs dynamisch ausblenden AWT, Swing, JavaFX & SWT 3
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
Airwolf89 Swing Anzahl der Tabellenspalten dynamisch setzen AWT, Swing, JavaFX & SWT 2
S SWT WizardPage - Button anzeigen und Text-Widgets dynamisch aktualisieren AWT, Swing, JavaFX & SWT 12
R JLabel und JSlider dynamisch erzeugen? AWT, Swing, JavaFX & SWT 3
W Swing dynamisch Buttons in JEditorPane erstellen AWT, Swing, JavaFX & SWT 2
Pithecanthropus Swing JPanels dynamisch austauschen AWT, Swing, JavaFX & SWT 8
S Applet mit Graphics dynamisch vergrößern AWT, Swing, JavaFX & SWT 3
Spot84 jtable mit checkboxnode dynamisch per arraylist füllen AWT, Swing, JavaFX & SWT 8
bugmenot Dynamisch erzeugte jLabels werden nicht angezeigt. AWT, Swing, JavaFX & SWT 5
ABstraCT JCombobox dynamisch füllen (erstes Element Problem) AWT, Swing, JavaFX & SWT 4
J JLabels usw. dynamisch anlegen AWT, Swing, JavaFX & SWT 8
A JList dynamisch vergrößern AWT, Swing, JavaFX & SWT 4
G Felder dynamisch erzeugen! AWT, Swing, JavaFX & SWT 3
I Textfields dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
G Dynamisch Komponenten in einem JPanel bzw JFram austauschen AWT, Swing, JavaFX & SWT 7
B JTree dynamisch aufbauen AWT, Swing, JavaFX & SWT 3
L JPanel dynamisch zuweisen AWT, Swing, JavaFX & SWT 5
T Inhalt einer Combobox dynamisch erstellen? AWT, Swing, JavaFX & SWT 13
S JTextField-Größe dynamisch an Inhalt anpassen. AWT, Swing, JavaFX & SWT 3
S Farben eienr JTextPane dynamisch zuweisen AWT, Swing, JavaFX & SWT 2
J Zugriff auf "dynamisch erzeugte" JTextFields AWT, Swing, JavaFX & SWT 2
D Systray-Icon dynamisch zeichnen AWT, Swing, JavaFX & SWT 8
B JTree dynamisch nachladen AWT, Swing, JavaFX & SWT 3
U Label Icon dynamisch belegen AWT, Swing, JavaFX & SWT 12
F JRadioButton dynamisch benennen? AWT, Swing, JavaFX & SWT 7
A dynamisch weitere jpanels untereinander hinzufügen AWT, Swing, JavaFX & SWT 10
S dynamisch erzeugte buttons AWT, Swing, JavaFX & SWT 22
J Größe einer JTextArea dynamisch anpassen. AWT, Swing, JavaFX & SWT 2
F Komponente dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
M ImageObserver, Bild dynamisch erzeugen und Speichern AWT, Swing, JavaFX & SWT 24
M gezeichnete Punkte dynamisch verschieben mit mousedragged AWT, Swing, JavaFX & SWT 4
S inhalt dynamisch erzeugter JComboBoxs auslesen AWT, Swing, JavaFX & SWT 3
G Mousecursor selber dynamisch generieren. AWT, Swing, JavaFX & SWT 6
G JRadioButton dynamisch erzeugen AWT, Swing, JavaFX & SWT 6
M Look and Feels dynamisch abfragen AWT, Swing, JavaFX & SWT 13
S Columnname dynamisch verändern AWT, Swing, JavaFX & SWT 2
H JComboBoxen dynamisch erzeugen AWT, Swing, JavaFX & SWT 3
K toolbar dynamisch erzeugen AWT, Swing, JavaFX & SWT 2
L Komponenten dynamisch erkennen und bearbeiten AWT, Swing, JavaFX & SWT 8
H große mengen an jbuttons dynamisch erzeugen? AWT, Swing, JavaFX & SWT 15
Juelin Objekte refresh AWT, Swing, JavaFX & SWT 3
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen


Oben