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

How to shift focus on the clicked tab

我有一个 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);


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

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

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

然后您可以 select 制表符,方法是从该方法返回的值中减去一个。