我想設計一個JTabbedPane在框架頂部,然後在選項卡式窗格下面的jLogArea的佈局。如何阻止JTextArea被放置在JTabbedPane之上?
我使用這個代碼:
setLayout(new BorderLayout());
tabbedPane.setSize(WIDTH, HEIGHT);
add(tabbedPane, BorderLayout.PAGE_START);
tabbedPane.add("Tab 0", null);
scrollableTextArea = new JScrollPane(jTextArea);
jTextArea.setEditable(false);
jTextArea.setLineWrap(true);
scrollableTextArea.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollableTextArea.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollableTextArea, BorderLayout.PAGE_END);
然而,這樣做的結果是,文本區域被放置在標籤面板背後:
有誰知道我是什麼做錯了,我該如何解決它?謝謝。
編輯:只是要清楚,我正在尋找文本區域下面的JTabbedPane,而不是在標籤本身。使用BorderLayout.NORTH
和BorderLayout.SOUTH
也沒有幫助。我加了一個標籤爲標籤的內容只是爲了看看是否能夠有所作爲,但文本區域還行後面,這是它的外觀:
而且代碼(類擴展JFrame
):
public MainGUI() {
init();
pack();
super.setTitle("test");
}
public void init() {
setLayout(new BorderLayout());
setPreferredSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
setMaximumSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
setMinimumSize(new Dimension(WIDTH, HEIGHT + TEXT_AREA_HEIGHT));
tabbedPane = new JTabbedPane();
textArea = new JTextArea(WIDTH, TEXT_AREA_HEIGHT);
scrollableTextArea = new JScrollPane(textArea);
JLabel testLabel = new JLabel("Test!");
tabbedPane.add("Tab 0", testLabel);
tabbedPane.setBorder(null);
tabbedPane.setSize(WIDTH, HEIGHT);
add(tabbedPane, BorderLayout.NORTH);
textArea.setEditable(false);
textArea.setLineWrap(true);
scrollableTextArea.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrollableTextArea.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollableTextArea, BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
你想'JTabbedPane'背後的'JTextArea'? –
我正在尋找它在JTabbedPane下,而不是在標籤的內容。所以它會是這樣的:如果該列表是組件的垂直順序,則菜單欄 - >選項卡列表 - >標籤內容 - >文本區域。 – Dan
讓我澄清一下..你想要一個'JTextArea'被添加到它的'South'處的'JFrame' ..並且在'JFrame'中心的上面想要'JTabbedPane'被添加..對嗎? –