Hallo zusammen ich habe einen Listener für meine JTabbedPane geschrieben um den Inhalt zu aktualisieren. Nun ist es so das sich der Inhalt nur ändert nachdem ich die Anwendung neu starte finden den Fehler einfach nicht. Hier mal der Code
Java:
public class Gui extends JPanel {
final JTabbedPane pane = new JTabbedPane();
JPanel panel_benutzereinstellung=new Benutzereinstellung();
SelectedPhotos selectedPhotos=new SelectedPhotos();
final JPanel panel_photoapp=new PhotoApp();
ImageIcon icon = createImageIcon("images/home.gif");
final ImageIcon icon1 = createImageIcon("images/camera.gif"); // Flickr Bilder
final ImageIcon icon2 = createImageIcon("images/selekt.gif"); // Selektierte Flickr Bilder
ImageIcon icon3 = createImageIcon("images/profil.gif"); // BenutzerProfil
ImageIcon icon4 = createImageIcon("images/bewertung.gif"); // Bewertungen
ImageIcon icon5 = createImageIcon("images/flickr"); // Image für Panel4
public Gui() throws Exception {
super(new BorderLayout(1,1)); // new GridLayout (1,1)
JPanel panel_bewertungen=new Bewertungen();
JLabel label1;
JLabel label2=new JLabel();
// Referenzen auf Darstellbare Klassen
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
label2.setText("Herzlich Willkommen zur Krisenapplikation");
label2.setFont(new Font("Serif", Font.BOLD, 20));
label1=new JLabel(icon5);
panel1.add(label1);
panel1.add(label2);
pane.addTab("Home", icon, panel1, "Startseite");
pane.setMnemonicAt(0, KeyEvent.VK_1); // Tastatursteuerung
pane.addTab("Flickr Fotos", icon1, panel_photoapp,
"Zeigt Fotos aus Flickr");
pane.setMnemonicAt(0, KeyEvent.VK_2);
pane.addTab("Selektierte Flickr Fotos", icon2, selectedPhotos,
"Zeigt gefilterte Fotos aus Flickr an");
pane.setMnemonicAt(0, KeyEvent.VK_3);
pane.addTab("Benutzereinstellungen", icon3, panel_benutzereinstellung,
"Benutzereinstellung anzeigen");
pane.setMnemonicAt(1, KeyEvent.VK_4);
pane.addTab("Bewertungen", icon4, panel_bewertungen,
"Bewertungen anzeigen");
pane.setMnemonicAt(2, KeyEvent.VK_5);
add(pane);
// Listener wird auf komplette TabbedPane angewendet
//ChangeListener changeListener = new ChangeListener() {
// public void stateChanged(ChangeEvent changeEvent) {
// hier muss der Inhalt neu geladen werden ???????
// JTabbedPane pane = (JTabbedPane) changeEvent.getSource();
// int index = pane.getSelectedIndex();
// if(index==2){
// Component comp=pane.getComponentAt(index);
//comp.repaint();
//JPanel panel = (JPanel) pane.getSelectedComponent();
// panel.validate();
//panel.repaint();
//component.validate();
//component.repaint();
//System.out.println("klappt");
//}}
//};
//pane.addChangeListener(changeListener);
//
}
// Listener NEU ---------------------------------------------------
ChangeListener changeListener = new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
// hier muss der Inhalt neu geladen werden ???????
int index = pane.getSelectedIndex();
if (index== 2)
{
pane.removeTabAt(2);
pane.insertTab("Selektierte Flickr Fotos", icon2, selectedPhotos,"Zeigt gefilterte Fotos aus Flickr an",2);
pane.setSelectedIndex(2);
}
pane.addChangeListener(changeListener);
pane.revalidate();
pane.repaint();
}
};
// Scrollbar
//pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = Gui.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("BildIcon wurde nicht gefunden: " + path);
return null;
}
}
private static void createAndShowGUI() throws Exception {
JFrame frame = new JFrame("KrisenApplikation Version 1.0");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(850,600);
frame.add(new Gui());
frame.setVisible(true);
frame.validate();
frame.repaint();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// Farbeeinstellung vom Tab
UIManager.put("swing.boldMetal", Boolean.FALSE);
try {
createAndShowGUI();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}