【发布时间】:2013-03-15 12:31:34
【问题描述】:
我正在使用 JTable,在它填满数据后,底部有一个带有文本输入的搜索按钮。一旦我输入“Joe”,它就会显示所有 joes 的详细信息。但是,它们从左到右显示在一行中(很像电子表格行)。
我想知道是否有办法让它以不同的方式显示这些数据?更像是一张桌子,而不是单独一行...
请告诉我是否需要显示我的部分代码,因为它很多,我不确定是否应该将其全部粘贴。 (本网站的新手)。
谢谢。
代码:
private void makeframe()
{
frame = new JFrame("Search");
frame.setPreferredSize(new Dimension(300, 300));
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
}
DefaultTableModel model = new DefaultTableModel();
model.addColumn("User");
model.addColumn("first name");
model.addColumn("surname");
//this goes on for a while
model.addRow(data);
JTable mainTable = new JTable(model);
contentPane.add(new JScrollPane (mainTable));
frame.setPreferredSize(new Dimension(1300, 200));
frame.pack();
frame.setVisible(true);
frame.setLocationRelativeTo(null);
【问题讨论】:
-
如果您发布源代码的相关示例会有所帮助。
-
makeFrame: frame = new JFrame("Search"); frame.setPreferredSize(新维度(300, 300));容器 contentPane = frame.getContentPane(); contentPane.setLayout(new BorderLayout()); DefaultTableModel 模型 = new DefaultTableModel(); model.addColumn("UserID"); model.addColumn("姓氏"); model.addColumn("名字"); ....... 模型.addRow(数据); JTable mainTable = new JTable(model); contentPane.add(new JScrollPane (mainTable));
-
编辑您的帖子并将您在评论中发布的代码粘贴到帖子中..
-
您可以使用 CardLayout 来切换带有“搜索结果”面板的 JTable(假设您只有一个结果)。或者,您可以提供一个详细信息面板,限制您在表格中显示的内容,并在用户选择一行时突出显示详细信息
-
这正是它目前的工作方式。这些行只显示 6 件事,但是最初当我添加用户时,输入了大约 12 件事。我将如何显示此详细信息面板?
标签: java swing jtable row cellrenderer