如何在Java中单击选项卡时调用某个函数?

时间:2013-03-19 08:46:44

标签: java swing jtabbedpane changelistener

在面板中我有3个标签(使用JTabbedPane)。用户可以在Tab1或Tab2中做任何他想做的事情,但当他切换到Tab3时,我希望他看到他在Tab2或Tab1中所做的结果。

我该怎么做?我想当用户点击Tab3时我必须调用一个函数?

1 个答案:

答案 0 :(得分:7)

您可以在TabbedPane上添加ChangeListener。此代码段显示了如何添加监听器以及如何指示哪个选项卡处于活动状态:

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class TestTabbedPane {

static JTabbedPane p;
static JFrame f;
public static void main(String[] args) {

    f = new JFrame();
    f.setSize(800,600);
    f.setLocationRelativeTo(null);

    p = new JTabbedPane();
    p.addTab("T1", new JPanel());
    p.addTab("T2", new JPanel());
    p.addTab("T3", new JPanel());

    p.addChangeListener(new ChangeListener() { //add the Listener

        public void stateChanged(ChangeEvent e) {

            System.out.println(""+p.getSelectedIndex());

            if(p.getSelectedIndex()==2) //Index starts at 0, so Index 2 = Tab3
            {
                //do your stuff on Tab 3
            }
        }
    });
    f.add(p);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
}
}