2013-05-17 23 views
1

我嘗試通過for來動態地在一個JTabbePane上創建Tabs時遇到問題。問題在於,當事件發生時,我不知道如何訪問內容。
我會嘗試向您展示部分代碼以便於理解。JTabbedPane動態創建

  conteudoT = new JTabbedPane(JTabbedPane.TOP); 
    conteudoT.setBounds(5, 19, 477, 232); 

    for (int i = 0; i < players; i++) { 

     conteudo = new JPanel(); 
     conteudo.setLayout(null); 

     Details = new JPanel(); 
     Details.setBounds(15, 11, 307, 183); 
     Details.setVisible(false); 
     Details.setName("Details" + i); 
     conteudo.add(Details); 

        btnR = new JButton("r"); 
        btnR.addActionListener(this); 

     conteudoT.addTab("Jogador " + (i + 1), conteudo); 
     Details.setLayout(new GridLayout(2, 1, 0, 0)); 
        ... 
        contentPane.add(conteudoT); 

        } 


    @Override 
public void actionPerformed(ActionEvent e) { 

    for (int i = 0; i < players; i++) { 
     if (e.getSource()==btnR) { 
      Details.setVisible(true); 

     } 
    } 
    } 

這裏會發生什麼事是,painel上的最後一個選項卡添加到詳細的構造和我想補充它的標籤在事件happend。

+1

使用'Map'到'JButton'鏈接到你的'Details'窗格。花時間學習如何使用佈局管理器並保存您的理智。也花時間學習Java語言的[編碼約定](http://www.oracle.com/technetwork/java/codeconv-138413.html)並保存我們的(理智);) – MadProgrammer

回答

1

使用:

conteudoT.indexOfTab(string) 

拿到指標。然後使用:

conteudoT.getTabComponentAt(int index) 

拿到組件

+0

謝謝,但是問題是用另一個類來解決的。是訪問不同標籤的唯一方法。 – fabio