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,请注意对代码的更新以共享表格标题,以便在拖动表格标题时两列都显示动画。