Erstellung eines kleinen Programmes

IncepTer

Mitglied
Hallo Freunde,

ich habe eine kleine (besser große?) Frage zu Swing.

Folgendes Szenario:

Ich möchte ein kleines Programm schreiben, welch mit Swing eine GUI bekommen soll.
Doch dazu habe ich noch 1-2 Verständnis-fragen, um alles optimal in den Griff zu bekommen:

Die Grundstruktur ist simpel:

Ein Frame, was oben (top) eine Menüleiste mit 2 Ober-Menüs und jeweils 2 Unter-Menüpunkten
enthält. Wenn ich das Programm startet, lande ich auf der "Startseite", welches das Main-JPanel
ist.

Klicke ich nun den Menüpunkt 1-1 an, soll sich der Inhalt ändern, sprich, der Benutzer soll z.B.
Eingaben tätigen können. Wie realisiere ich dies am besten?

Es soll alles im gleichen Frame bleiben und ganz unten im Frame, ist ein Bildchen, was auch immer
da bleiben soll. Ich habe es bisher so gemacht, dass der ActionListener, sobald er durch die Betätigung des Menüpunktes aufgerufen wird, ein neues JPanel anlegt, was fast so groß wie
das Frame ist (ausgeschlossen ist das Logo und rund herum etwas Rand).

Betätigt jemand den Menüpunkt 1-2, soll wieder ein JPanel erzeugt werden, wo z.B. ein Textfeld ist.

Ist das prinzipiell die richtige Herangehensweise, sozusagen mehrere "Fenster" im Frame zu erzeugen?

Zum genaueren Verständnis, habe ich im Anhang ein Bild angefügt.

Vielen Dank :)
 

Anhänge

  • 3.jpg
    3.jpg
    27,3 KB · Aufrufe: 42

Androbin

Bekanntes Mitglied
Wozu die JPanel jedesmal neu erzeugen?
Lege dir einfach ein paar Variablen für die jeweiligen Panels an und wechsele sie je nach Bedarf.
Das hat nicht nur den Vorteil, dass du dir die ständige Reinitialisierung der Components sparst,
sondern auch den, dass keine Inhalte von JTextFields und Co. resettet werden.
 

MichaProgs

Aktives Mitglied
Hi IncepTer,

hierzu müsstest du eine verschachtelte GUI bauen. Beschäftige dich hierzu am besten mit dem BorderLayout und dem CardLayout. Im BorderLayout teilst du oben die Menubar und unten deine andere gewünschte Bar ein. Im Center kannst du dann das Panel mit dem CardLayout einteilen. Wenn du nun in der Menubar einen Menüpunkt anklickst, wechelst du einfach im CardLayout auf das gewünschte Panel.

So viel zur groben Erklärung. Falls du weitere Hilfe brauchst, kann ich dir gerne helfen.

Gruß
TB94
 

IncepTer

Mitglied
Ok, danke erst einmal für die Hilfestellungen.
Das mit den Variablen klingt plausibel.
Wie kann ich das konkretisieren, wenn ich die Menüpunkte ausgelagert habe,
in eine anderen Klasse (Datei)? Dann einfach mit setVisible arbeiten?

Ich bin gerade dabei, mich in die Layouts einzulesen aber grübel noch,
wie das am besten geht. Ich würde sagen: bastel-Zeit :p
 

da32079

Mitglied
Wenn du gerade anfängst mit der GUI Programmierung, würde ich dir empfehlen gleich mit JavaFx anzufangen. Bin hellauf begeistert davon. Wenn du es allerdings mit Swing machen möchtest, würde ich dir das mit dem Cardlayoutmanager empfehlen. Mit dem kannst du mehrere Frames, oder Panels übereinander legen und zwischen diesen hin und her switchen.
 

Androbin

Bekanntes Mitglied
Ok, danke erst einmal für die Hilfestellungen.
Das mit den Variablen klingt plausibel.
Wie kann ich das konkretisieren, wenn ich die Menüpunkte ausgelagert habe,
in eine anderen Klasse (Datei)? Dann einfach mit setVisible arbeiten?
...
Nein, bloß nicht! Dann wären die Components ja immer noch da, zwar nicht sichtbar, aber sie würden reagieren!
1. Entferne mit der Methode "Container#remove( Component comp )" das momentan angezeigte Panel und
2. Ersetzte es mit der Methode "Container#add( Component comp )" durch das ab sofort anzuzeigende Panel.
 

MichaProgs

Aktives Mitglied
Wenn du gerade anfängst mit der GUI Programmierung, würde ich dir empfehlen gleich mit JavaFx anzufangen. Bin hellauf begeistert davon.[...]

Da muss ich da32079 zustimmen. Wenn du gerade erst anfängst mit der GUI-Programmierung würde sich JavaFX wohl tatsächlich eher empfehlen. Es gibt zwar noch nicht so wahnsinnig viele Tutorials und Hilfestellungen dazu, aber JavaFX ist Designtechnisch deutlich schöner als Swing und bekommt auch weiterhin neue Updates. Wenn du dich dazu noch etwas mit Websprachen (vor allem CSS!) auskennst, kannst du sicherlich schöne GUI's programmieren.

Gruß
TB94
 

IncepTer

Mitglied
Vielen Dank erst einmal!
Mit dem CardLayout klappt es wunderbar :)

Nur eine kleine Frage:

Ich habe jetzt die einzelnen Cards ausgelagert, was ja wunderbar funktioniert.
Nun werden diese allerdings nicht mehr in dieser "Designer-Ansicht" dargestellt.

Habt Ihr eine Idee, damit ich diese da wiederfinde kann?

Zur Zeit sieht es z.B. so aus:

Code:
		HauptPanel.add(desktop, BorderLayout.CENTER);
		
		// Startseite des Desktops
			Startseite ss	= new Startseite();
			desktop.add(ss.Startseite(),"Startseite");
		
		// Kunde bearbeiten
			JPanel Kunde_Bearbeiten = new JPanel();
			Kunde_Bearbeiten.setBackground(Color.CYAN);
			desktop.add(Kunde_Bearbeiten,"Kunde_Bearbeiten");
			Kunde_Bearbeiten.setLayout(null);
			
		// ##################################################	Neuer Kunde
			Neuen_Kunden_Anlegen nka	= new Neuen_Kunden_Anlegen();
			desktop.add(nka.Neuen_Kunden_Anlegen(),"Neuer_Kunde");

Kunde bearbeiten wird als ein-zigstes noch in der Designer-Ansicht angezeigt, die anderen beiden nicht mehr.

Danke :)
 

IncepTer

Mitglied
Ok, habe dazu auch eine Lösung gefunden.
Wie gesagt, es klappt bisher alles wunderbar.

Ich habe noch eine Frage zu dem CardLayout, wo ich auch bisher keine für mich zufriedenstellende Antwort finden konnte.

ich habe nun ein JPanel was im CardLayout angeordnet ist. Darunter befinden sich sozusagen Panel 1,2 und 3.
Nun kann ich ja mit Show wunderbar gezielt auf Panel 1,2 oder 3 gehen.

Wie realisiere ich aber, dass ich die Cards untereinander auswählen kann, wenn Sie in eine externe Klasse ausgelagert sind? Ist der Code in der Main geht das ja alles, aber so ist es für mich gerade schwierig, da eine brauchbare Lösung zu finden.

Ich mach es eben so:

cl.show(desktop, "Neuen_Kunden_Hinzufeugen");

Danke :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
G LookAndFeel Tutorial für Erstellung eines eigenen Look And Feel AWT, Swing, JavaFX & SWT 3
M Probleme bei Erstellung eines jar archives AWT, Swing, JavaFX & SWT 10
P Erstellung eines GUI. Wie fängt man an? AWT, Swing, JavaFX & SWT 6
T Problem bei der Erstellung eines GridBagLayouts AWT, Swing, JavaFX & SWT 4
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
L JavaFX WebView Erstellung nicht möglich AWT, Swing, JavaFX & SWT 4
E 3D-Grafik LWJGl OpenGL Version vor Erstellung des Displays abfragen AWT, Swing, JavaFX & SWT 2
T Erstellung einer ShadowMap mit Java3D AWT, Swing, JavaFX & SWT 6
R Tool für die Erstellung von Mockups AWT, Swing, JavaFX & SWT 2
W Swing gute Ide für GUI Erstellung gesucht AWT, Swing, JavaFX & SWT 3
R Arten der GUI-Erstellung AWT, Swing, JavaFX & SWT 2
E Swing Problem bei Erstellung von GUI für Routenplaner AWT, Swing, JavaFX & SWT 3
F Frage zu Dialogen mit JDialog -Erstellung des Konstruktors AWT, Swing, JavaFX & SWT 3
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
H Swing Saubere Erstellung einer Tabelle AWT, Swing, JavaFX & SWT 3
L Frage zu Erstellung des Menu mit JFace AWT, Swing, JavaFX & SWT 2
B Problem bei der Erstellung einer Bilddatei aus einem JPanel AWT, Swing, JavaFX & SWT 16
T LookAndFeel Erstellung :: Problem mit JTabbedPanes AWT, Swing, JavaFX & SWT 2
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
T Nur bestimmte Bereiche eines Fotos bearbeiten AWT, Swing, JavaFX & SWT 0
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
O Swing Aufbau eines JFrames AWT, Swing, JavaFX & SWT 2
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
F Instanzierung einer inneren Klasse in Klasse eines anderen Packets AWT, Swing, JavaFX & SWT 3
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
javampir Swing Wanderung eines JFrames AWT, Swing, JavaFX & SWT 7
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
S Swing Nur den sichtbaren Bereich eines TextPane mit Inhalt darstellem AWT, Swing, JavaFX & SWT 0
H Position eines JLabel in einem JPanel AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java AWT, Swing, JavaFX & SWT 10
T Swing Einzelne Teile eines Textes färben? AWT, Swing, JavaFX & SWT 10
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
HaukeG JavaFX JavaFX Resize und DragAndDrop eines Pane AWT, Swing, JavaFX & SWT 4
D 2D-Grafik Inhalt eines Graphics in anderes Graphics zeichnen.... AWT, Swing, JavaFX & SWT 3
J Denkfehler bei Aktualisierung eines GUI AWT, Swing, JavaFX & SWT 4
J Logikfehler im erstellen eines GUI AWT, Swing, JavaFX & SWT 3
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
B Event Handling Mausbewegung auch außerhalb eines JFrames registrieren AWT, Swing, JavaFX & SWT 2
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben