0
  1. 我有一张员工考勤记录表,例如:
  2. 列标题将是一个月的日期,从 1/11,2/11,3/11 到 30/11
  3. 第 0 行 --> 员工姓名 - 员工 ID
  4. 第 1 行 --> 开始时间
  5. 第 2 行 --> 结束时间
  6. 第 3 行 --> 闯入
  7. 第 4 行 --> 突破
  8. 第 5 行 --> 员工姓名 - 员工 ID
    ...

  9. 如果我在搜索框中输入员工姓名,员工姓名所在的行

  10. 出现在上面的情况下它是第 0 行。但我需要显示四个连续的
  11. 行也是该员工的详细信息。

  12. 我们有什么办法可以做到这一点?

4

2 回答 2

1

如果我理解正确的话。如果您搜索具有员工姓名(例如)的员工,则显示与该员工相关的行必须发生。

AFAIK 只有在它们之间保持某种链接时才能显示这些行。因为表行中的每个 Employee 数据只是与其他行一样的一行。Employee class因此,使用属性创建一个,当用户使用 查询时EmpName,检索该员工的所有详细信息。

但就设计而言,我认为您应该更喜欢为每个员工提供每一行,而不是在一行中给出所有员工姓名或在一行中给出所有开始时间。因为在不知道它们究竟代表什么的情况下查看细节会令人困惑。

这只是我的理解和建议。如果我错了,请纠正我。

于 2012-11-20T15:47:04.983 回答
1

以下是如何进行的概述:

  • 创建和JTable的两个实例。employeedetail

  • 让它employee用作SINGLE_SELECTION它的ListSelectionModelvia setSelectionMode()

  • TableModelofdetail包含ListSelectionListener从 接收事件的a employee,如相关示例所示。

  • 要在中显示所选employee数据detail,可以扩展和。TableModeldetailAbstractTableModelfireTableDataChanged()

例如,

employee.getSelectionModel().addListSelectionListener(
        new ListSelectionListener() {

    @Override
    public void valueChanged(ListSelectionEvent e) {
        if (!e.getValueIsAdjusting()) {
            // update the detail table model based on the selected employee
            fireTableDataChanged();
        }
    }
});
于 2012-11-20T18:56:04.913 回答