JTabbedPane Problem

Stephan2009

Aktives Mitglied
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();
		}
            }
        });
    }
}
 

turtle

Top Contributor
Ich würde bei Deinem Code den ChangeListener entfernen, bevor Du Änderungen machst. Denn natürlich wird Dein Listener durch Deinen Code wieder selbständig aufgerufen und da TabPages entfernt/hinzugefügt werden...

Vielleicht lohnt sich auch mal ein Blick/Suche wie man TabPages enabled/disabled?
Java:
	ChangeListener changeListener = new ChangeListener() {
		public void stateChanged(ChangeEvent changeEvent) {
			// hier muss der Inhalt neu geladen werden ???????
			int index = pane.getSelectedIndex();
			if (index == 2) {
[B]				pane.removeChangeListener(changeListener); // Würde ich empfehlen[/B]
				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();
		}
	};
 

Michael...

Top Contributor
Zur dynamischen Layout Änderung von Komponenten kann man auch das CardLayout verwenden.
Ändert sich an der Komponente
Code:
selectedPhotos
überhaupt etwas?

Allerdings würde ich mir diese Vorgehensweise überlegen! Warum sollte man wegen inhaltlicher Änderungen eine Komponente rausschmeißen, um dann sogar eine identische Komponente mit nur anderem Inhalt wieder einzufügen.
Nur weil man beim Fernsehen einen anderes Programm anschauen will, schmeißt man doch auch nicht gleich den ganzen Fernseher raus...
 

Stephan2009

Aktives Mitglied
Danke schonmal für die Antworten, es ist so es gibt eine Klasse in der ich festelegen nach welchen Suchkriterien ich Fotos suche danach wird eine Funktion aufgerufen die mir anhand dieser Kriterien die Fotos als XML speichert. Jetzt ruft mir die selected Photos die aktuelle Liste auf wo die Fotos drin sind. Betätige ich jetzt die Tab sollen die vorherigen Fotos aktualisiert werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
hdi Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 2
H Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 9
A Problem mit einer JTabbedPane AWT, Swing, JavaFX & SWT 2
H JTabbedPane Höhe-Problem AWT, Swing, JavaFX & SWT 3
J JTabbedPane Hintergrundfarbe Problem AWT, Swing, JavaFX & SWT 8
T Problem bei Update von JTables in JTabbedPane AWT, Swing, JavaFX & SWT 2
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
I JTabbedPane mit DnD, [x]-Schaltfläche, [+]-Schaltfläche usw. AWT, Swing, JavaFX & SWT 1
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
D JTabbedPane GUI Experimente AWT, Swing, JavaFX & SWT 4
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
B StateChangeListener auf JTabbedPane AWT, Swing, JavaFX & SWT 5
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
F JTabbedPane bestimmten Tab ansprechen AWT, Swing, JavaFX & SWT 13
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
BRoll JTabbedPane setTitleAt OutOfBoundsExc AWT, Swing, JavaFX & SWT 4
K JTabbedPane Tab Markierung / Selektion AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
L JTabbedPane Closebutton integrieren AWT, Swing, JavaFX & SWT 6
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
K Swing JTabbedPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 19
B Swing JTabbedPane in JApplet -> Reiter bei Aktualisation mehrmals zu sehen AWT, Swing, JavaFX & SWT 3
M JTabbedPane -> setSelectedIndex funzt nicht AWT, Swing, JavaFX & SWT 3
D Bestimmtes JPanel innerhalb eines JTabbedPane ansprechen AWT, Swing, JavaFX & SWT 2
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S JTabbedPane AWT, Swing, JavaFX & SWT 4
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
G JTabbedPane - Länge der Reiter beeinflussen? AWT, Swing, JavaFX & SWT 9
G Swing JTabbedPane Was für ein Border wird da um die Tabs gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Komponentengröße in JTabbedPane AWT, Swing, JavaFX & SWT 7
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
M CloseButton bei JTabbedPane AWT, Swing, JavaFX & SWT 4
P Swing JTabbedPane mit JButton einen anderen Tab anzeigen AWT, Swing, JavaFX & SWT 9
D JTabbedPane zentrieren AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
Mike90 JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 17
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Swing Tab in JTabbedPane AWT, Swing, JavaFX & SWT 5
A JFrame > JTabbedPane > JPanel > addKeyListener AWT, Swing, JavaFX & SWT 18
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
S Border von JTabbedpane-Tab? AWT, Swing, JavaFX & SWT 3
M JTabbedPane Docable? AWT, Swing, JavaFX & SWT 3
L Swing JTabbedPane - Index vom Tab AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
F Borders von JTabbedPane und JScrollPane AWT, Swing, JavaFX & SWT 5
W JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 4
G Swing JTabbedPane vergrößern AWT, Swing, JavaFX & SWT 2
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
D Tabs von JTabbedPane stylen AWT, Swing, JavaFX & SWT 6
U JTabbedPane: Layout-Probleme bei addTab zur Laufzeit AWT, Swing, JavaFX & SWT 2
1 JTabbedPane Tab ausdehnen AWT, Swing, JavaFX & SWT 3
F Swing JTabbedPane: Zur Laufzeit die Tabreihenfolge ändern AWT, Swing, JavaFX & SWT 2
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
D Swing Probleme bei mit JTabbedPane.getChildren() AWT, Swing, JavaFX & SWT 4
I Swing Randnutzung bei JTabbedPane.LEFT AWT, Swing, JavaFX & SWT 2
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
P JTabbedPane und fill? AWT, Swing, JavaFX & SWT 2
D Swing mehrere JTable in separaten Tabs einer JTabbedPane AWT, Swing, JavaFX & SWT 2
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
R JTabbedPane Selektion verfolgen? AWT, Swing, JavaFX & SWT 2
byte JTabbedPane - Insets entfernen AWT, Swing, JavaFX & SWT 7
S JTabbedPane child setBounds AWT, Swing, JavaFX & SWT 4
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
V Extended JTabbedPane AWT, Swing, JavaFX & SWT 7
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
A JTabbedPane Tabwechsel rausfinden AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben