Hallo,
ich verwende JTabbedPane fuer ein karteikartenaehnliches Layout. Ich moechte gerne dass die Inhalte der einzelnen Panel nach jedem Wechsel aktualisiert werden. Ich habe das Problem in einem kurzen Beispiel dargestellt. Hierbei sollte die Variable _counter nach jedem Wechsel der dargestellten Karteikarte inkrementiert werden. Wie kann ich das erreichen? Vielen Dank im Voraus!
ich verwende JTabbedPane fuer ein karteikartenaehnliches Layout. Ich moechte gerne dass die Inhalte der einzelnen Panel nach jedem Wechsel aktualisiert werden. Ich habe das Problem in einem kurzen Beispiel dargestellt. Hierbei sollte die Variable _counter nach jedem Wechsel der dargestellten Karteikarte inkrementiert werden. Wie kann ich das erreichen? Vielen Dank im Voraus!
Code:
import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
public class TabbedPaneDemo extends JPanel {
int _counter = 0;
public TabbedPaneDemo() {
super(new GridLayout(1, 1));
JTabbedPane tabbedPane = new JTabbedPane() {
public void actionPerformed(javax.swing.event.ChangeEvent e) {
//if (e.getSource() == Menu1Item1) {
try {
setComponentAt(1, makeTextPanel("Panel #1"));
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
};
JComponent panel1 = makeTextPanel("Panel #1");
tabbedPane.addTab("Tab 1", panel1);
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
JComponent panel2 = makeTextPanel("Panel #2");
tabbedPane.addTab("Tab 2", panel2);
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
JComponent panel3 = makeTextPanel("Panel #3");
tabbedPane.addTab("Tab 3", panel3);
tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
JComponent panel4 = makeTextPanel(
"Panel #4 (has a preferred size of 410 x 50).");
panel4.setPreferredSize(new Dimension(410, 50));
tabbedPane.addTab("Tab 4", panel4);
tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
//Add the tabbed pane to this panel.
add(tabbedPane);
}
protected JComponent makeTextPanel(String text) {
JPanel panel = new JPanel(false);
// The _counter should increase each time a panel is changed:
JLabel filler = new JLabel(text+" counter: "+_counter);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}