2010-11-11 69 views
16

Tôi có hai JTabbedPanes, JTabbedPane1 Làm cách nào tôi có thể nhấn nút trong JTabbedPane2 để hiển thị JTabbedPane1?Làm cách nào để chuyển đổi các tab trong jTabbedPane bằng cách nhấp vào một nút?

Đây là mã cho 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(); 
    } 

} 

đây là lớp JPane1:

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

và lớp Jpane2 với nút trên int

JButton test = new JButton ("Press"); jp2.add (kiểm tra);

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

} nên vấn đề là ở đây trong ActionListener nút trên Jpanel2

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

alt text

Trả lời

37

Nếu bạn thực hiện các cửa sổ theo thẻ truy cập đến ButtonHandler bạn có thể làm điều này:

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

Bạn có thể làm điều này bằng cách làm cho jtp (lý tưởng với một tên tốt hơn) một thuộc tính riêng với một phương thức getter hoặc nó có thể được được truyền vào như một đối số hàm tạo cho ButtonHandler.

+0

tuyệt vời: D Tôi vừa quên chỉ mục. – gumuruh

7

Bạn nên sử dụng phương pháp JTabbedPane.setSelectedIndex(int index) với chỉ số của tab bạn muốn.

0

Cũng giống như thêm rằng trình xử lý tác vụ của bạn phải ở trong cùng một lớp với các tab của bạn.

1

của nó rất đơn giản: sử dụng mã dưới đây:

JTabbedpane.setSelectedIndex(); 

gì bao giờ tên của nó là của bạn J Bảng điều chỉnh thay thế nó với JTabbedpane trên và ví dụ bạn muốn chọn các tab đầu tiên chỉ cần đặt 0 trong khung và nếu bạn muốn chọn tab thứ hai sau đó đặt 1 trong khung ví dụ: J tôi tab cửa sổ được gọi là jtabbedpanel và tôi muốn các tab đầu tiên sau đó dòng sẽ trông như:

jtabbedpanel.setSelectedIndex(0); 

hy vọng điều này giúp !!

-1

Chỉ cần! Với:

JTabbedPane.setSelectedComponnet(component); 
+1

** Từ hàng đợi đánh giá: ** Tôi có thể yêu cầu bạn thêm một số ngữ cảnh xung quanh câu trả lời của bạn hay không. Các câu trả lời chỉ có mã khó hiểu. Nó sẽ giúp người hỏi và người đọc trong tương lai cả khi bạn có thể thêm nhiều thông tin hơn trong bài đăng của mình. Xem thêm [Giải thích toàn bộ câu trả lời dựa trên mã] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers). –

Các vấn đề liên quan