2010-11-11 179 views
16

我有兩個JTabbedPanes,JTabbedPane1 如何按下JTabbedPane2中的按鈕來顯示JTabbedPane1?如何通過單擊按鈕切換jTabbedPane中的選項卡?

這裏是JTabbedPane的代碼:

public class TabbedPane extends JFrame { 

    public TabbedPane() { 


     setTitle("Tabbed Pane"); 
     setSize(300,300); 

     JTabbedPane jtp = new JTabbedPane(); 

     getContentPane().add(jtp); 

     JPanel1 jp1 = new JPanel1();//This will create the first tab 

     JPanel jp2 = new JPanel2();//This will create the second tab 

     //add panel ......... 

    //example usage 
    public static void main (String []args){ 
     TabbedPane tab = new TabbedPane(); 
    } 

} 

這裏是類JPane1:對INT

JButton的測試=新的JButton( 「新聞」

... JLabel label1 = new JLabel(); 
     label1.setText("This is Tab 1"); 
     jp1.add(label1); 

和類Jpane2與按鈕); jp2.add(test);

ButtonHandler phandler = new ButtonHandler(); 
test.addActionListener(phandler); 
setVisible(true); 

} 這樣的問題是在這裏按鈕的ActionListener在Jpanel2

class ButtonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       // what i do now ? to call jpanel 1 show ![alt text][1] 
     } 
} 

alt text

回答

37

如果使標籤面板訪問ButtonHandler你可以這樣做:

class ButtonHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 
       jtp.setSelectedIndex(0); 
     } 
} 

您可以通過JTP(最好有一個更好的名字)的私人屬性與getter方法做到這一點,也可以是作爲構造函數參數傳遞給ButtonHandler。

+0

偉大:D我只是忘記了索引。 – gumuruh 2017-12-12 02:10:31

7

您應該使用方法JTabbedPane.setSelectedIndex(int index)你想要的選項卡的索引。

0

就像添加你的動作監聽器必須與你的選項卡在同一個類中。

1

它很簡單:使用下面的代碼:

JTabbedpane.setSelectedIndex(); 

有史以來的名字是你什麼Ĵ面板與上述JTabbedPane的更換和比如你要選擇的第一個選項卡只需在支架放0如果要選擇,然後第二個選項卡把1支架如:我Ĵ標籤面板被稱爲jtabbedpanel,我想第一個選項卡,然後行會看:

jtabbedpanel.setSelectedIndex(0); 

希望這有助於!

-1

只是!隨着:

JTabbedPane.setSelectedComponnet(component); 
+1

**來自審覈隊列:**我可以請求您請您在答案中添加更多的上下文。僅有代碼的答案很難理解。如果您可以在帖子中添加更多信息,它可以幫助提問者和未來的讀者。另請參閱[完全解釋基於代碼的答案](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)。 – 2017-06-08 18:00:06

相關問題