Java JTabbedPane中滚动窗格中的表

Java JTabbedPane中滚动窗格中的表,java,swing,jtabbedpane,scrollpane,Java,Swing,Jtabbedpane,Scrollpane,我想使用JTabbedPane显示一些表(每个选项卡中有一个表)。 很容易实现:你制作一个JTabbedPane,放置一些滚动窗格(代表选项卡),然后你只需将表格添加到滚动窗格中。 我的问题是,在滚动窗格中,您只能添加表格,我还需要添加文本框、单选按钮和标签 我想知道是否还有其他方法可以做到这一点。如果我了解你。。。您可以将scrollPane放入选项卡并添加到它的面板中 并将所需的控件和表格添加到面板中 像这样 您可以使用jformdesiner生成代码 jTabbedPane1 = ne

我想使用JTabbedPane显示一些表(每个选项卡中有一个表)。 很容易实现:你制作一个JTabbedPane,放置一些滚动窗格(代表选项卡),然后你只需将表格添加到滚动窗格中。 我的问题是,在滚动窗格中,您只能添加表格,我还需要添加文本框、单选按钮和标签


我想知道是否还有其他方法可以做到这一点。

如果我了解你。。。您可以将scrollPane放入选项卡并添加到它的面板中 并将所需的控件和表格添加到面板中

像这样

您可以使用jformdesiner生成代码

 jTabbedPane1 = new javax.swing.JTabbedPane();
    jScrollPane1 = new javax.swing.JScrollPane();
    jPanel1 = new javax.swing.JPanel();
    jButton2 = new javax.swing.JButton();
    jScrollPane2 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();

    jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS));

    jButton2.setText("jButton2");
    jPanel1.add(jButton2);

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null},
            {null, null, null, null}
        },
        new String [] {
            "Title 1", "Title 2", "Title 3", "Title 4"
        }
    ));
    jScrollPane2.setViewportView(jTable1);

    jPanel1.add(jScrollPane2);

    jScrollPane1.setViewportView(jPanel1);

    jTabbedPane1.addTab("tab1", jScrollPane1);

将所有元素放在一个JPanel上,并将JPanel放在JScrollPane内。如@Compass所说。虽然您可能只需要JScrollPane中的JTable,但随后将JScrollPane放置到另一个在中间位置使用BorderLayout的JPanel中,并将其他组件添加到其他JPanel中,然后将这些JPanel添加到主JPanel中,然后将其添加到JTabbedPane中。这里的关键思想是:是的,您可以而且应该嵌套JPanel,并且每个都可以使用自己的布局管理器。玩玩它,看看你能想出什么。@装满鳗鱼的气垫船如果你把桌子放在一个JPanel里,你将看不到第一行,它代表着列名:)@Compass已经试过了。你读了我贴的东西,事实上是我的第一句话!是的,你把JTable放进了JScrollPane,但是那就放进了嵌套的jpanel。我已经试过了,但没有成功。但是,您的代码可以工作,但请尝试将jTabbedPane1添加到帧中。你会看到那张桌子不再出现了。我已经使用了Eclipse中的jform设计器
public static void main(String[] args) {

    JFrame Frame = new JFrame();
    JTabbedPane jTabbedPane1 = new javax.swing.JTabbedPane();
    JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
    JPanel jPanel1 = new javax.swing.JPanel();
    JButton jButton1 = new javax.swing.JButton();
    JButton jButton2 = new javax.swing.JButton();
    JScrollPane jScrollPane2 = new javax.swing.JScrollPane();
    JTable jTable1 = new javax.swing.JTable();

    Frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS));

    jButton1.setText("jButton1");
    jPanel1.add(jButton1);

    jButton2.setText("jButton2");
    jPanel1.add(jButton2);

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object[][]{
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null, null, null, null, null},

            },
            new String[]{
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
    ));
    jScrollPane2.setViewportView(jTable1);

    jPanel1.add(jScrollPane2);

    jScrollPane1.setViewportView(jPanel1);

    jTabbedPane1.addTab("tab2", jScrollPane1);

    Frame.setContentPane(jTabbedPane1);
    Frame.setVisible(true);
}