0

パネルには 3 つのタブがあります (JTabbedPane を使用)。ユーザーは、Tab1 または Tab2 で好きなことを行うことができますが、Tab3 に切り替えたときに、Tab2 または Tab1 で行った操作の結果を確認したいと考えています。

どうすればいいですか?ユーザーが Tab3 をクリックしたときに関数を呼び出す必要があると思いますか?

4

1 に答える 1

10

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);
}
}
于 2013-03-19T08:56:57.750 に答える