如何将焦点转移到单击的选项卡上

时间:2016-12-15 05:25:07

标签: java swing tabs mouselistener jtabbedpane

我有一个JTabbedPane,当我添加新标签按钮时,它会创建新标签并关注新标签。但是,当我点击该标签页时,我想将焦点从新标签页移到另一个标签页。

如何将焦点转移到点击的标签上?提前谢谢。

以下是处理新标签的代码部分:

public Test(){
    newPage = new JButton();
    newPage.setPreferredSize(new Dimension(30, 30));
    newPage.setBorderPainted(false);
    newPage.setBackground(Color.decode("#330300"));
    newPage.setToolTipText("New Page");
    newPage.setEnabled(true);
    JPanel jp = new JPanel();
    jp.setLayout(new BorderLayout());
    tb = new JTabbedPane();
    tb.setUI(new CustomTabbedPaneUI());
    tb.setForeground(Color.decode("#330300"));
    tb.addTab("New Tab", fPane);
    jp.add(new JLayer<JTabbedPane>(tb));
    newPage.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent ae) {
            try {
                tb.addTab("New Tab", new JPanel());
                //initial value of inI=0;
                tb.setSelectedIndex(inI+1);
                inI++;
            } catch (IOException ex) {
                Logger.getLogger(Pooh.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    });
    tb.setOpaque(true);


}

1 个答案:

答案 0 :(得分:2)

tb.setSelectedIndex(inI+1);
inI++;

无需变量来跟踪选项卡式窗格中的选项卡数量。

您可以从选项卡式窗格中获取该信息。我认为该方法是getTabCount()或类似的东西。阅读方法的JTabbedPane。

然后,您可以通过从方法返回的值中减去一个来选择选项卡。