在一个面板中,我有 3 个选项卡(使用 JTabbedPane)。用户可以在 Tab1 或 Tab2 中做任何他想做的事情,但是当他切换到 Tab3 时,我希望他看到他在 Tab2 或 Tab1 中所做的事情的结果。
我该怎么做呢?我想当用户点击 Tab3 时我必须调用一个函数?
在一个面板中,我有 3 个选项卡(使用 JTabbedPane)。用户可以在 Tab1 或 Tab2 中做任何他想做的事情,但是当他切换到 Tab3 时,我希望他看到他在 Tab2 或 Tab1 中所做的事情的结果。
我该怎么做呢?我想当用户点击 Tab3 时我必须调用一个函数?
您可以在 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);
}
}