パネルには 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);
}
}