Austausch der Center-Fläche

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hi,

ich möchte in einem BorderLayout die CENTER-Fläche nach dem Auftreten eines ActionEvents ändern. Das ActionEvent wird von einem Element auf dieser CENTER-Fläche ausgelöst, was nach dem Austausch verschwunden ist. Ist das möglich? Ich häng mal ein kurzes Bespiel an, was das Problem in Kurzform wiederspiegelt. Der Button, der das ActionEvent auslöst, soll durch ein Label ersetzt werden. Wieso funktioniert das so nicht?
Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Test implements ActionListener {
	
	public Test(){
		f = new JFrame();
		p = new JPanel();
		f.add(p);
		p.setLayout(new BorderLayout());
		b = new JButton("Ok");
		b.addActionListener(this);
	    p.add(b, BorderLayout.CENTER);
	    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
	    f.setSize( 300, 200 ); 
	    f.setVisible( true ); 
		
		
	}
	private JPanel p;
	private JFrame f;
	private JButton b;
	private JLabel l;
	
	public void setFrame(JFrame f){
		this.f = f;
	}
	
	public JFrame getFrame(){
		return f;
	}
	
	public static void main(String[] args) 
	{ 
	    Test ft = new Test();
	}

	public void actionPerformed(ActionEvent arg0) {
		p.remove(b);
		l = new JLabel("aaaa");
		p.add(l, BorderLayout.CENTER);
		p.repaint();
	} 
}
 
Ohne was anderes als den Titel gelesen zu haben: Wenn du Componenten entfernst und neue hinzufügst, musst du anschließend validate aufrufen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben