2012-11-07 108 views
2
的位置

我想知道我怎麼能設置標籤的JTabbedPane中從left.By默認的起始位置他們是在一箇中心位置,因爲我使用的是Mac OS X.標籤JTabbedPane的

如果您需要更多信息,請讓我知道。

看到這一形象得到什麼,我使用的是默認JTabbedPane中在我的Mac得到一個想法:

enter image description here

+0

我想你會發現那朵外觀的特點和感覺,因此,可能無法更改 – MadProgrammer

+1

1)該圖片網址已損壞。 2)當涉及到圖形用戶界面時,用戶的「最少驚喜之路」是針對該應用的。隨着操作系統的建議「隨流」。 –

回答

3

如果你的目標平臺是Mac上,你很可能會遵循OSX的風格指南。 Java Development Guide for Mac。關於選項卡式窗格的討論。

默認情況下你只能定位標籤上的不同側面,例如:

  // Alternative placements: 
      // JTabbedPane.TOP 
      // JTabbedPane.RIGHT 
      // JTabbedPane.LEFT 
      // JTabbedPane.BOTTOM. 
      tabbedPane.setTabPlacement(JTabbedPane.TOP); 

但是,如果你想有頂部的標籤,但調整到左,而不是中心,你需要或者選擇不同的外觀和感覺,或修改系統的外觀和感覺。這是可能的,但更多的涉及,正如已經指出的那樣,這是不可取的。您必須在顯示任何內容之前執行所有更改。有關該主題的出發點,是指How to write a Custom Look and Feel

對於運行例子中看到代碼:

import java.awt.*; 

import javax.swing.*; 

public class Tab { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       JFrame frame = new JFrame("TabbedPane"); 
       frame.getContentPane().add(new TabView()); 
       frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
       frame.setMinimumSize(new Dimension(800, 450)); 
       frame.setLocationRelativeTo(null); // Center 
       frame.pack(); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    static class TabView extends JPanel { 

     private JTabbedPane tabbedPane; 

     TabView() { 
      createComponents(); 
      makeLayout(); 
     } 

     private void createComponents() { 
      tabbedPane = new JTabbedPane(); 
      tabbedPane.addTab("Hello", new JLabel("World")); 
      tabbedPane.addTab("Goodbye", new JLabel("Sunshine")); 
     } 

     private void makeLayout() { 
      setLayout(new BorderLayout()); 

      // Alternative placements: JTabbedPane.TOP, JTabbedPane.RIGHT, JTabbedPane.LEFT JTabbedPane.BOTTOM. 
      tabbedPane.setTabPlacement(JTabbedPane.TOP); 
      // Alternative layout policies: JTabbedPane.WRAP_TAB_LAYOUT or JTabbedPane.SCROLL_TAB_LAYOUT. 
      tabbedPane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT); 

      add(tabbedPane, BorderLayout.CENTER); 
     } 
    } 
} 
+0

它不在MAC中工作,2個選項卡在中心..你能幫我嗎 – Abin

+1

如果你有兩個標籤在中間,它確實工作。正如在上面的答案中指出的那樣,如果你想要別的東西,你應該改變你應用程序的外觀和感覺,或者你可以寫一個自定義的外觀和感覺。然而,在你開始之前,你應該問自己「爲什麼?」。是否因爲你不喜歡Apple的外觀和感覺?是否因爲有人要求你這樣做?如果是,那麼你應該問他們「爲什麼?」。很可能你會找到你應該尋找的答案。另見http://en.wikipedia.org/wiki/5_Whys – Skjalg

相關問題