2016-01-20 77 views
1

我有几个选项卡,并在其中一个选项卡上放置了一个滚动窗格。我想在下面添加另一个窗格,以便我可以添加一些按钮。它只是不断调整,以填补整个标签。我尝试过设置和设置大小,但没有运气。任何人都可以看到我做错了什么或指向正确的方向吗?非常感激!在JTabbedPane上调整JScrollPane的大小

JFrame frame = new JFrame(); 
    JScrollPane pane = new JScrollPane(table); 
    pane.setBounds(0, 0, 415, 50);  // < ---This seems to do nothing 
    pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 

    JTabbedPane jtp = new JTabbedPane(); 
    jtp.setBounds(-11, -14, 436, 170); // <---- I used -ve to hide border  

    jtp.addTab("tab1", new JLabel("Tab1")); 
    jtp.addTab("tab2", new JLabel("Tab2")); 
    jtp.addTab("tab3", new JLabel("Tap3")); 
    jtp.addTab("tab4", new JLabel("Tab4")); 
    jtp.addTab("tab5", pane); 
    jtp.setTabPlacement(JTabbedPane.BOTTOM); 
    frame.add(jtp,BorderLayout.CENTER); 
+0

创建'JPanel',也许使用'GridLayout'或'GridBagLayout',加上'JScrollPane'它和你所需要的过其他组件,然后添加该面板的“标签”组件 – MadProgrammer

回答

1
import java.awt.BorderLayout; 

import javax.swing.Box; 
import javax.swing.BoxLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTabbedPane; 
import javax.swing.JTable; 
import javax.swing.ScrollPaneConstants; 
import javax.swing.table.DefaultTableModel; 

public class ScrollSizeRedone { 
    public static void main(final String[] args) { 

     final JFrame frame = new JFrame(); 

     final JTable table = new JTable(new DefaultTableModel(new String[][] { { "a", "b" }, { "c", "d" } }, new String[] { "col1", "col2" })); 
     final JScrollPane pane = new JScrollPane(table); 
     //  pane.setBounds(0, 0, 415, 50); // < ---This seems to do nothing // no use 
     pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 

     final JPanel completePanel = new JPanel(); 
     completePanel.setLayout(new BorderLayout()); 
     completePanel.add(pane); 

     final JPanel buttonsPanel = new JPanel(); 
     buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); 
     buttonsPanel.add(new JButton("LOL")); 
     buttonsPanel.add(Box.createHorizontalStrut(100)); 
     buttonsPanel.add(new JButton("ROFL")); 
     buttonsPanel.add(Box.createHorizontalGlue()); 
     buttonsPanel.add(new JButton("MUAHAHA")); 
     completePanel.add(buttonsPanel, BorderLayout.SOUTH); 

     final JTabbedPane jtp = new JTabbedPane(); 
     //  jtp.setBounds(-11, -14, 436, 170); // <---- I used -ve to hide border 
     jtp.addTab("tab1", new JLabel("Tab1")); 
     jtp.addTab("tab2", new JLabel("Tab2")); 
     jtp.addTab("tab3", new JLabel("Tap3")); 
     jtp.addTab("tab4", new JLabel("Tab4")); 
     jtp.addTab("tab5", completePanel); 

     jtp.setTabPlacement(JTabbedPane.BOTTOM); 
     frame.add(jtp, BorderLayout.CENTER); 

     frame.setBounds(100, 100, 800, 600); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 
+0

非常感谢:)完美的作品。 – volican

相关问题