Neues JFrame ueber altem?!

DeadMatt

Grünschnabel
Hi,
Ich wollte auf einem JFrame ein paar Berechnungen durchfuehren, und nun sollte man auf "Weiter" klicken und dann sollte das erste JFrame durch ein neues getauscht werden wo in einem JTextfield die berechneten Werte aufgelistet werden. Nun will ich aber auch zurueck gehen koennen(auf JFrame1) und die eingegebenen Werte noch immer in den Feldern stehen(also kein getContentPane().removeAll();).
Ich habe versucht einfach ein neues JFrame zu erstellen und das dann mit Hilfe von setContentPane(JFrame2); ueber das erste zu legen, doch bleibt das programm dann einfach stehen.
Wie kann ich ein 2ten JFrame ueber den ersten legen und diesen dann mit z.B. einem textfeld bestuecken?
 
Hallo,

man kann einen JFrame nicht in einen anderen bestehenden JFrame einbinden. Das einfachste wäre das du zwei JFrames hast. Du könntest dann per Button hin und her Schalten.


Vg Erdal
 
Ja genau mit setVisible().

Du hast auf beiden Frames jeweils einen Button. Drückst du auf den Button auf Frame1 machst du
frame1.setVisible(false)
frame2.setVisible(true)

und beim Button auf Frame 2 genau umgekehrt.


Vg Erdal
 
habs mal versucht, das problem is glaub ich, dass ich mit Eclipse und Jigloo arbeite, hab da nen Main Frame und irgendwie macht das probs O.o

so sieht da der Code aus:
Code:
package frames;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class frame1 extends javax.swing.JFrame {
	private JButton jButton1;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		frame1 inst = new frame1();
		inst.setVisible(true);
	}
	
	public frame1() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{

				
				final JFrame frame2 = new JFrame();
				frame2.setTitle("zweites");
				frame2.setLayout(null);
				
				
				JButton jButton2 = new JButton();
				frame2.add(jButton2);
				jButton2.setText("Back");
				jButton2.setBounds(231, 217, 70, 28);
				jButton2.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jButton2.actionPerformed, event="
							+ evt);
						//TODO jButton1.actionPerformed
						getContentPane().setVisible(true);
						frame2.setVisible(false);
						
					}
				});
				
				jButton1 = new JButton();
				getContentPane().add(jButton1);
				jButton1.setText("Next");
				jButton1.setBounds(231, 217, 70, 28);
				jButton1.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jButton1.actionPerformed, event="
							+ evt);
						//TODO jButton1.actionPerformed
						getContentPane().setVisible(false);
						frame2.setVisible(true);
						
					}
				});
			}
			pack();
			setSize(400, 300);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
 
Hallo,

schau mal hier:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class FrameChangeExample extends JFrame implements ActionListener{

	private JButton b1 = new JButton("Forward");

	private FrameTwo mf = new FrameTwo(this);

	public FrameChangeExample() {
		this.setTitle("MainFrame");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setAlwaysOnTop(true);
		this.setLocationByPlatform(true);
		this.setSize(240,320);

		this.add(b1);
		b1.addActionListener(this);

		this.setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		this.setVisible(false);
		mf.setVisible(true);
	}

	public static void main(String[] args) {
		new FrameChangeExample();
	}

	class FrameTwo extends JFrame implements ActionListener {

		private JButton b2 = new JButton("Backward");

		private JFrame f;

		public FrameTwo (JFrame f) {
			this.setTitle("Frame Two");
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setAlwaysOnTop(true);
			this.setLocationByPlatform(true);
			this.setSize(320,480);

			this.add(b2);

			this.f = f;
			b2.addActionListener(this);
		}

		public void actionPerformed(ActionEvent e) {
			this.setVisible(false);
			f.setVisible(true);
		}
	}
}


Vg Erdal
 
Zurück