In Hauptfenster Programm-Klassen implementieren

Hallo,

ich versuche eine Applikation mit Swing graphisch zu realisieren und weiß im Moment nicht, wie ich eine Applikation in einer SingleFrameApplication starten kann, z.B. über einen Button in der Menüleiste.

Das Teilprogramm "SettingsFrame.java", ein JFrame, kann alleine laufen. Das will ich aber von einem Hauptprogramm starten lassen. Wie muß ich das realisieren? Immerhin haben beide eine "public static void main"-Methode, wobei in einem Programm nur Eine existieren darf.

Vor allem wo kann ich das unter Eclipse einstellen?

Ich weiß, das sind Anfängerfragen, ich finde nur nichts auf die Schnelle in der Literatur.

Java:
import java.awt.event.ActionEvent;

public class SettingsFrame extends javax.swing.JFrame {
	private JLabel jLPLZ;
	private JTextField jTFPLZ;
	private JLabel jLName;
	private JButton jBtnRead;
	private JTextField jTFSurname;
	private JLabel jLSurname;
	private JTextField jTFName;
	private JScrollBar jScrollBar1;
	private JButton jBtnOK;
	private boolean existfile; 
	Settings s = new Settings();

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				SettingsFrame inst = new SettingsFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public SettingsFrame() {
		super();
		initGUI();
	}
	
		
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			if (!s.getDir().exists()) {
				s.createDirectory();
			}
			
			if (s.getFile().exists()) {
				existfile = false;
			} else {
				existfile = true;
				s.createFile();
			}
			{
				jLPLZ = new JLabel();
				getContentPane().add(jLPLZ);
				jLPLZ.setText("PLZ:");
				jLPLZ.setBounds(31, 39, 45, 15);
			}
			{
				jTFPLZ = new JTextField();
				getContentPane().add(jTFPLZ);
				jTFPLZ.setBounds(115, 36, 110, 22);
				jTFPLZ.setEditable(existfile);
			}
			{
				jBtnOK = new JButton();
				getContentPane().add(jBtnOK);
				jBtnOK.setText("OK");
				jBtnOK.setBounds(127, 211, 69, 22);
				jBtnOK.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						jBtnOKActionPerformed(evt);
					}
				});
			}
			{
				jScrollBar1 = new JScrollBar();
				getContentPane().add(jScrollBar1);
				jScrollBar1.setBounds(535, 58, 17, 139);
			}
			{
				jLName = new JLabel();
				getContentPane().add(jLName);
				jLName.setText("Vorname:");
				jLName.setBounds(32, 76, 78, 15);
			}
			{
				jTFName = new JTextField();
				getContentPane().add(jTFName);
				jTFName.setBounds(115, 73, 110, 22);
				jTFName.setEditable(existfile);
			}
			{
				jLSurname = new JLabel();
				getContentPane().add(jLSurname);
				jLSurname.setText("Nachname:");
				jLSurname.setBounds(32, 108, 83, 15);
			}
			{
				jTFSurname = new JTextField();
				getContentPane().add(jTFSurname);
				jTFSurname.setBounds(115, 105, 110, 22);
				jTFSurname.setEditable(existfile);
			}
			{
				jBtnRead = new JButton();
				getContentPane().add(jBtnRead);
				jBtnRead.setText("Einlesen");
				jBtnRead.setBounds(267, 211, 102, 22);
				jBtnRead.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						jBtnReadActionPerformed(evt);
					}
				});
			}
			pack();
			this.setSize(574, 296);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	private void jBtnOKActionPerformed(ActionEvent evt) {
		s.setName(jTFName.getText());
		s.setSurname(jTFSurname.getText());
		s.setZip(Integer.parseInt(jTFPLZ.getText()));
		s.storeSettings();
		System.out.println("Vorname : " + s.getName());
		System.out.println("Nachname: " + s.getSurname());
		System.out.println("PLZ : " + s.getZip());
		//s.createDirectory();
	}
	
	private void jBtnReadActionPerformed(ActionEvent evt) {
		s.readSettings();
		jTFName.setText(s.getName());
		jTFSurname.setText(s.getSurname());
		jTFPLZ.setText(s.getZip());
	}

}

Grüße

CaptainNelson
 

KrokoDiehl

Top Contributor
Na du kannst du in deiner anderen Anwendung den SettingsFrame instanziieren und starten, also genau das ausführen, was du in der aktuellen main-Methode machst.
 
Hallo KrokoDiehl,

das habe ich auch bereits gedacht. Allerdings SettingsFrame soll nicht innerhalb des Hauptprogrammfensters laufen, sondern so wie jetzt als eigenständiges Window vom Hauptprogramm aus geöffnet werden können.

Ich habe gehört, dass ich in Eclipse unter Properities/"Run/Debug Settings" das Hauptprogramm meines Package festlege. Jetzt suche ich die Implementierungsmöglichkeit, die anderen jFrames als eigenständige Windows vom Hauptprogramm zu starten.
 

KrokoDiehl

Top Contributor
Moment, nicht das wir hier was vermischen... JFrames werden immer als eigenständige Fenster angezeigt, d.h. in der Taskleiste bekommen sie einen eigenen Eintrag, die blockieren keine anderen Fenster der Anwendung und man kann sie unabhängig voneinander schließen. Anders als z.B. einen JDialog (bzw. modale Fenster).

Was du aber schreibst klingt nach einem eigenständigen Prozess, im Falle von Java also einer neuen VM. Den Sinn dahinter würde ich aber nicht verstehen...

In erstgenanntem Punkt kannst du in deinem Hauptprogramm so viele JFrames starten wie du magst:
Java:
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            SettingsFrame frame = new SettingsFrame();
            frame.pack();
            frame.setVisible(true);
        }
    });

    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            MainFrame frame = new MainFrame ();
            frame.pack();
            frame.setVisible(true);
        }
    });

   // ...
}
 
Na ja, den Sinn würde ich so interpretieren:
Ich will ja nicht im laufenden Programm meine Oberfläche zerschießen, nur weil ich eine Einstellung ändern will. Da öffnet sich meines Erachtens immer ein eigenständiges Fenster, das aber ohne Hauptprogramm nicht geöffnet werden kann.
Was du aber schreibst klingt nach einem eigenständigen Prozess, im Falle von Java also einer neuen VM. Den Sinn dahinter würde ich aber nicht verstehen...
[/code]

Ich probiere auf alle Fälle Deinen Vorschlag aus, vielleicht ist ja das was ich meine.

Besten Dank!
 
J

jDennis79_nli

Gast
bERt0rs Kommentar hat auch nichts mit deinem Problem zu tun, sondern war ein sarkastischer Zusatzhinweis darauf, dass das von dir verwendete null-Layout pöse ist. Wenn dein Problem gelöst ist, solltest du dich mit LayoutManagern beschäftigen.

So richtig klar ist mir noch nicht, was du eigentlich genau vorhast. Vielleicht versuchst du mal, zu beschreiben, was für eine Art Programm du da schreibst und was dieses Settings-Fenster tun soll. Dann wird vielleicht klarer, wie man dir helfen kann.
 
Hallo Dennis,

gelöst ist es noch nicht.
Settings.java liest nur Daten ein, zeigt sie an und bietet eine Änderungsfunktion an. Das ist ein Teil
eines Zeiterfassungsprogramms, der dort unter dem Menüpunkt "Extra/Einstellungen" zu finden sein wird.

Wenn ich jetzt hier in meinem Firefox unter Linux auf "Bearbeiten/Einstellungen" klicke, öffnet sich eben ein solches Fenster. Allerdings eigenständig, ohne meine Firefox-Oberfläche zu "zerstören". Allerdings ohne das Hauptprogramm Firefox werde ich dieses Fenster nie öffnen können.

Grüße

CaptainNelson
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
J vom Dialogfenster ein Feld des Hauptfenster einlesen AWT, Swing, JavaFX & SWT 2
B Hauptfenster öffnet sich mehrmals AWT, Swing, JavaFX & SWT 9
D Transparentes Hauptfenster Events AWT, Swing, JavaFX & SWT 1
S Hauptfenster soll geöffnet bleiben AWT, Swing, JavaFX & SWT 4
N Label auf Hauptfenster manipulieren AWT, Swing, JavaFX & SWT 2
Dit_ Wenn viele NebenFenster zum Locationsetzen das HauptFenster brauchen AWT, Swing, JavaFX & SWT 2
T Alle Folgefenster sollen im Hauptfenster geöffnet werden AWT, Swing, JavaFX & SWT 3
X Applicationfenster im 2.-/Hauptfenster erstellen AWT, Swing, JavaFX & SWT 5
O Look And Feel greift nicht im Hauptfenster (JFrame)! AWT, Swing, JavaFX & SWT 11
R SWING: Modales Fenster - Hauptfenster aktualisieren AWT, Swing, JavaFX & SWT 11
A SWT Hauptfenster aktualisieren AWT, Swing, JavaFX & SWT 6
M Hauptfenster und alle Kinder schließen? AWT, Swing, JavaFX & SWT 7
G Swing Menü Hauptfenster AWT, Swing, JavaFX & SWT 14
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
G CAD Programm AWT, Swing, JavaFX & SWT 4
thor_norsk E - Mail Programm AWT, Swing, JavaFX & SWT 2
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
N Programm Läuft nicht auf anderen Pcs AWT, Swing, JavaFX & SWT 9
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
S Lustiges programm schnell coden? AWT, Swing, JavaFX & SWT 2
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
L JavaFX IntelliJ Standalone Programm exportieren AWT, Swing, JavaFX & SWT 9
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
M AWT Programm in den Tray minimieren AWT, Swing, JavaFX & SWT 2
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
P Swing Warum startet das Programm nicht? AWT, Swing, JavaFX & SWT 3
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower progressBar in ein bestehendes Programm einbauen AWT, Swing, JavaFX & SWT 3
J Verbesserungsvorschläge?! Kleines AWT Programm AWT, Swing, JavaFX & SWT 4
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
Arif Swing Programm friert ein... AWT, Swing, JavaFX & SWT 2
apple_pie1998 Programm gibt plötzlich exceptions aus. AWT, Swing, JavaFX & SWT 4
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
J Programm im GUI ausführen AWT, Swing, JavaFX & SWT 4
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
W Windows Fenster in einem Programm AWT, Swing, JavaFX & SWT 2
F Mal Programm AWT, Swing, JavaFX & SWT 13
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
M Programm in Jframe "einbinden" AWT, Swing, JavaFX & SWT 7
S Programm auf aktuellen Stand bringen AWT, Swing, JavaFX & SWT 2
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
GUI-Programmer Swing JWindow - Programm wird ohne Grund beendet AWT, Swing, JavaFX & SWT 3
E Kreis-Mal-Programm AWT, Swing, JavaFX & SWT 7
P Programm aktuallisiert sich nur beim Rüberzeigen AWT, Swing, JavaFX & SWT 6
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
J Programm schließen AWT, Swing, JavaFX & SWT 4
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
E Windows Kontext Menü - Laufendes Programm AWT, Swing, JavaFX & SWT 3
T Programm vom Desktop starten! AWT, Swing, JavaFX & SWT 2
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
H Userinput in GUI an externes Programm AWT, Swing, JavaFX & SWT 8
D Firefox aus Programm starten AWT, Swing, JavaFX & SWT 4
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
J SWT 32 bit Programm für 64 bit Jave AWT, Swing, JavaFX & SWT 10
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
H Infofenster vor dem eigentlichen Java Programm AWT, Swing, JavaFX & SWT 3
B Uberschrift in Swing-Programm zur Laufzeit aendern... AWT, Swing, JavaFX & SWT 4
C Swing Kleines Programm mit SWING unter Verwendung von MVC AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben