GUI mit Swing - Wie wechselt das JPanel

Ok, gutes Argument :p

Ich habe sowas hier immer außerhalb gemacht, bin allerdings wohl doch noch nicht so Java-firm, wie ich dachte :-)

tschüss
Klaus
 
Was du nicht machen solltest, ist lange Arbeiten im Event-Thread zu machen, da die GUI sonst nicht aktualisiert wird.
Dazu solltest du dir mal den SwingWorker anschauen.

Gruß

Sascha
 
Hallo Sascha, hallo Klaus,

erstmal Danke für Euren Einsatz.
Die letzten Tips (nach 15:29) kann ich erst morgen auf Arbeit testen, bin jetzt zu Hause.
Ich werde dann berichten obs geklappt hat.

Bei mir wird der eine Betrag auch falsch zugeordnet, ich werde angezeigt, Beitrag ist aber von Sascha.

Tschüß bis morgen
Gernot
 
Morgen, morgen,

bin wieder auf Sender.
Es tut mir sehr leid, aber bei mir funktioniert es nicht. Was kann ich noch machen?
Habe Saschas Hinweis "Erst hinzufügen, dann ein repaint." probiert, aber leider keine Änderung (nur 1x Inhaltswechsel nach Größenänderung).

Und bei Euch funktioniert das so?
Code:
	private JMenuItem getJMenuItem_aus1() {
		if (jMenuItem_aus1 == null) {
			jMenuItem_aus1 = new JMenuItem();
			jMenuItem_aus1.setText("Anw1");
			jMenuItem_aus1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					Anw1 anw1 = new Anw1();
					Start.this.getContentPane().add(anw1);
					Start.this.repaint();
				}
			});
		}
		return jMenuItem_aus1;
	}
Tschüß
Gernot
 
So,

ich würde es so lösen.
Java:
import java.awt.BorderLayout;
import java.awt.CardLayout;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class Start extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JMenuBar jJMenuBar = null;
	private JMenu jMenu = null;
	private JMenuItem jMenuItem_aus1 = null;
	private JMenuItem jMenuItem_aus2 = null;

	public Start() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 200);
		this.setJMenuBar(getJJMenuBar());
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
		Anw1 anw1 = new Anw1();
		Anw2 anw2 = new Anw2();
		getJContentPane().add("anw1", anw1);
		getJContentPane().add("anw2", anw2);
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(new CardLayout());
		}
		return jContentPane;
	}

	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getJMenu());
		}
		return jJMenuBar;
	}

	private JMenu getJMenu() {
		if (jMenu == null) {
			jMenu = new JMenu();
			jMenu.setText("Auswahl");
			jMenu.add(getJMenuItem_aus1());
			jMenu.add(getJMenuItem_aus2());
		}
		return jMenu;
	}

	private JMenuItem getJMenuItem_aus1() {
		if (jMenuItem_aus1 == null) {
			jMenuItem_aus1 = new JMenuItem();
			jMenuItem_aus1.setText("Anw1");
			jMenuItem_aus1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					((CardLayout)getJContentPane().getLayout()).show(getJContentPane(), "anw1");
				}
			});
		}
		return jMenuItem_aus1;
	}

	private JMenuItem getJMenuItem_aus2() {
		if (jMenuItem_aus2 == null) {
			jMenuItem_aus2 = new JMenuItem();
			jMenuItem_aus2.setText("Anw2");
			jMenuItem_aus2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					((CardLayout)getJContentPane().getLayout()).show(getJContentPane(), "anw2");
				}
			});
		}
		return jMenuItem_aus2;
	}
	
	public static void main(String[] args) {
		new Start().setVisible(true);
	}
}

Gruß

Sascha
 
Zurück