Java 如何将JTable切割成几个部分,每个部分都有自己的标题?

Java 如何将JTable切割成几个部分,每个部分都有自己的标题?,java,swing,jtable,Java,Swing,Jtable,如何将JTable切割成几个部分,每个部分都有自己的标题,注意所有数据都存在于同一个数据库中 我想做这样的事 给你一些想法的简单例子: import java.awt.*; import javax.swing.*; import javax.swing.table.*; public class TableSharedHeader extends JPanel { JComboBox comboBox; TableSharedHeader() {

如何将
JTable
切割成几个部分,每个部分都有自己的标题,注意所有数据都存在于同一个数据库中

我想做这样的事


给你一些想法的简单例子:

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class TableSharedHeader extends JPanel
{
    JComboBox comboBox;

    TableSharedHeader()
    {

        JTable table1 = new JTable(5, 3);
        JTable table2 = new JTable(5, 3);
        table2.setTableHeader( table1.getTableHeader() );
        table2.setColumnModel( table1.getColumnModel() );

        JPanel tablePanel = new JPanel();
        tablePanel.setLayout( new BoxLayout(tablePanel, BoxLayout.Y_AXIS) );

        tablePanel.add( new JLabel("First table") );
        tablePanel.add(table1);
        tablePanel.add( new JLabel("Second table") );
        tablePanel.add(table2);

        setLayout( new BorderLayout() );

        JScrollPane scrollPane = new JScrollPane( tablePanel );
        scrollPane.setColumnHeaderView( table1.getTableHeader() );
        add( scrollPane );
    }

    private static void createAndShowGUI()
    {
        JFrame frame = new JFrame("TableSharedHeader");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new TableSharedHeader());
        frame.pack();
        frame.setLocationByPlatform( true );
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater( () -> createAndShowGUI() );
/*
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
*/
    }
}

下面是一个简单的例子,让您了解一些想法:

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

public class TableSharedHeader extends JPanel
{
    JComboBox comboBox;

    TableSharedHeader()
    {

        JTable table1 = new JTable(5, 3);
        JTable table2 = new JTable(5, 3);
        table2.setTableHeader( table1.getTableHeader() );
        table2.setColumnModel( table1.getColumnModel() );

        JPanel tablePanel = new JPanel();
        tablePanel.setLayout( new BoxLayout(tablePanel, BoxLayout.Y_AXIS) );

        tablePanel.add( new JLabel("First table") );
        tablePanel.add(table1);
        tablePanel.add( new JLabel("Second table") );
        tablePanel.add(table2);

        setLayout( new BorderLayout() );

        JScrollPane scrollPane = new JScrollPane( tablePanel );
        scrollPane.setColumnHeaderView( table1.getTableHeader() );
        add( scrollPane );
    }

    private static void createAndShowGUI()
    {
        JFrame frame = new JFrame("TableSharedHeader");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new TableSharedHeader());
        frame.pack();
        frame.setLocationByPlatform( true );
        frame.setVisible( true );
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater( () -> createAndShowGUI() );
/*
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
*/
    }
}

可能有多个jtable?我认为是同一个jtable,因为只有一个标题line@imenltf,
它是相同的jtable
-不,它不是jtable。Swing JTable不支持这种类型的功能。我会使用一个带有额外列的表来描述附件/打印机之间的关系。然后实施行分类器/过滤器,允许用户根据自己的意愿对数据进行分组或过滤。或者使用@JoeC建议的完全独立的表。您可能会发现,用户更喜欢功能性(但“不令人兴奋”)GUI,而不是您试图实现的任何kewl效果。@程序员,刚刚编辑了代码,将第二个表的表头设置为第一个表的表头,现在两个表的列都被设置为动画。快速测试的内容就这么多了,因为我第一次测试时确实有这样一个功能,但我认为不需要它,所以我删除了它:)多个jtable,也许?我认为是同一个jtable,因为只有一个标题line@imenltf,
它是相同的jtable
-不,它不是jtable。Swing JTable不支持这种类型的功能。我会使用一个带有额外列的表来描述附件/打印机之间的关系。然后实施行分类器/过滤器,允许用户根据自己的意愿对数据进行分组或过滤。或者使用@JoeC建议的完全独立的表。您可能会发现,用户更喜欢功能性(但“不令人兴奋”)GUI,而不是您试图实现的任何kewl效果。@程序员,刚刚编辑了代码,将第二个表的表头设置为第一个表的表头,现在两个表的列都被设置为动画。快速测试到此为止,因为我第一次测试时确实有这个,但认为不需要,所以我将其删除:)非常感谢大家的帮助:D:D,非常感谢camickr:D@imenletaief,请注意代码的更新以共享表格标题,以便在拖动表格标题时两列都显示动画。非常感谢大家的帮助:D:D,非常感谢camickr:D@imenletaief,请注意对代码的更新以共享表格标题,以便在拖动表格标题时两列都显示动画。