-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmployeeTable.java
More file actions
48 lines (43 loc) · 1.48 KB
/
Copy pathEmployeeTable.java
File metadata and controls
48 lines (43 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package gui;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.util.List;
public class EmployeeTable extends JTable {
private EmployeeManager manager;
private DefaultTableModel model;
public EmployeeTable(EmployeeManager manager) {
super();
this.manager = manager;
model = new DefaultTableModel(new Object[]{"ID", "Name", "Position", "Salary"}, 0) {
@Override
public boolean isCellEditable(int row, int column) {
return false; // Make table non-editable
}
};
setModel(model);
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
setShowGrid(true);
setGridColor(Color.LIGHT_GRAY);
setRowHeight(28);
getTableHeader().setReorderingAllowed(false);
refreshTable();
}
public void refreshTable() {
model.setRowCount(0);
List<Employee> employees = manager.getAllEmployees();
for (Employee e : employees) {
model.addRow(new Object[]{e.getId(), e.getName(), e.getPosition(), e.getSalary()});
}
}
public Employee getSelectedEmployee() {
int row = getSelectedRow();
if (row >= 0) {
String id = (String) getValueAt(row, 0);
for (Employee e : manager.getAllEmployees()) {
if (e.getId().equals(id)) return e;
}
}
return null;
}
}