2016-01-23 55 views
0

我正在尋找一個示例,其中點擊不同的按鈕應該打開不同的標籤,並且結果/輸出應該寫入其中的文本面板。Button Click應該調用一個帶有文本面板的標籤面板(Dynamic)

文本面板應嵌入在選項卡內。

而且我找實例,而不是完整的解決方案

+0

你能否更具體?例如。你想要在按鈕點擊時添加新標籤,還是隻想更改活動標籤?另外,你究竟是什麼意思'結果/輸出'? –

+0

@LuxxMiner我希望在按鈕單擊時添加新選項卡,並且一旦添加了選項卡,它也應該觸發某種方法,如具有一些打印語句並且應該被重定向到選項卡內 – user4021949

回答

1

你應該叫JTabbedPane.setSelectedIndex您的按鈕監聽器裏,試試下面的例子:

import java.awt.BorderLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JTabbedPane; 
import javax.swing.SwingUtilities; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class Main 
{ 
    private static int numberOfTabs = 1; 

    public static void main(String[] args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       try 
       { 
        UIManager.setLookAndFeel(
          "javax.swing.plaf.nimbus.NimbusLookAndFeel"); 
       } 
       catch (ClassNotFoundException | InstantiationException 
         | IllegalAccessException 
         | UnsupportedLookAndFeelException e) 
       { 
       } 
       JFrame frame = new JFrame(); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setBounds(100, 100, 400, 500); 

       JButton addNewTab = new JButton("Add new Tab"); 

       JTabbedPane tab = new JTabbedPane(); 

       addNewTab.addActionListener(e -> { 
        tab.add(new JLabel("new tab " + numberOfTabs + " created."), 
          "tab " + numberOfTabs); 
        tab.setSelectedIndex(numberOfTabs - 1); 
        numberOfTabs++; 
       }); 
       frame.add(addNewTab, BorderLayout.NORTH); 

       frame.add(tab, BorderLayout.CENTER); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 
+0

我希望在按鈕上添加新選項卡點擊和添加標籤後,它也應該觸發一些方法,如有一些打印語句,應該被重定向到標籤 – user4021949

+0

@ user4021949內看到我更新的代碼。 –

+0

非常感謝,爲我工作。接下來我正在尋找的東西讓我說,我有兩個按鈕在表單面板中,當我點擊時,一些輸出被重定向到標籤,就像我點擊第一個按鈕,然後輸出將轉到第一個標籤,如果我點擊第二個按鈕,然後輸出將轉到第二個選項卡,並且選項卡中都有textarea。例如讚賞 – user4021949