【问题标题】:Is it possible to change the way my data is currently displayed?是否可以更改我的数据当前的显示方式?
【发布时间】: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


【解决方案1】:

您可以尝试以您喜欢的格式创建面板,然后使用只有 1 列的表格。将您的面板放在此列中。

【讨论】:

    猜你喜欢
    • 2020-09-10
    • 2021-10-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2018-10-12
    • 1970-01-01
    相关资源
    最近更新 更多