2016-12-15 47 views
0

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


} 

回答

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

沒有必要爲一個變量來跟蹤在選項卡式窗格的選項卡的數量。

您可以從選項卡窗格本身獲取該信息。我認爲該方法是getTabCount()或類似的東西。閱讀JTabbedPane的方法。

然後,您可以通過從方法返回的值中減去1來選擇選項卡。