aer*_*jun 5 java swing jtable jframe
我正在为一家小商店开发一个程序.当我单击"报告"按钮时,它必须显示一个表,如下所示:

列名"A","B"......"N"必须是员工的姓名.但我无法弄清楚如何.这是我的代码:
public void Inform()
{
String[] employee;
String[] product[];
this.setLayout(null);
Inform=new JTable(nulo, employee.length);
model = new DefaultTableModel() {
private static final long serialVersionUID = 1L;
@Override
public int getColumnCount() {
return 1;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
@Override
public int getRowCount() {
return Inform.getRowCount();
}
};
headerTable = new JTable(model);
for (int i = 0; i < Inform.getRowCount(); i++)
headerTable.setValueAt(product[i], i, 0);
headerTable.setShowGrid(false);
headerTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
headerTable.setPreferredScrollableViewportSize(new Dimension(50, 0));
headerTable.getColumnModel().getColumn(0).setPreferredWidth(50);
scrollPane = new JScrollPane(Inform);
scrollPane.setRowHeaderView(headerTable);
scrollPane.setBounds(5,5,500,500);
scrollPane.setEnabled(false);
this.add(scrollPane);
}
Run Code Online (Sandbox Code Playgroud)
员工和产品会根据输入的数量而变化.nulo有多少产品可以出售.
Jon*_*nas 13
你应该添加getColumnName()你的TableModel:
String[] employee = {"Employee 1", "Employee 2"};
@Override
public String getColumnName(int index) {
return employee[index];
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下,这可能是:
model = new DefaultTableModel() {
private static final long serialVersionUID = 1L;
String[] employee = {"Employee 1", "Employee 2"};
@Override
public int getColumnCount() {
return employee.length;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
@Override
public int getRowCount() {
return Inform.getRowCount();
}
@Override
public String getColumnName(int index) {
return employee[index];
}
};
Run Code Online (Sandbox Code Playgroud)
这是一个完全有效的例子:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TableNamesTest extends JFrame {
public TableNamesTest() {
DefaultTableModel model = new DefaultTableModel() {
String[] employee = {"emp 1", "emp 2"};
@Override
public int getColumnCount() {
return employee.length;
}
@Override
public String getColumnName(int index) {
return employee[index];
}
};
JTable table = new JTable(model);
add(new JScrollPane(table));
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new TableNamesTest();
}
}
Run Code Online (Sandbox Code Playgroud)