【发布时间】:2023-12-17 12:18:01
【问题描述】:
嗨,我是 java jtable cellrendered 的新手。我正在寻找一种适用于我的程序的方法,但我没有找到它。 这是我的 Jtable
Employee ID | Name | Status | Position
00565651 Roger Active Manager
00565652 Gina Active Crew
00565652 Alex Inactive Crew
00565652 Seph Active Manager
数据来自 ms access 数据库,但我想更改状态列中值为“非活动”的行的背景/前景。我在互联网上找到了很多例子,但所有这些在我的程序中都是不可能的。有人能帮我吗? 这是我的模型
String[] columnNames = {"Employee ID","Name", "Status", "Position"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
这是创建我的表以及我如何从数据库中获取数据的方式
public MyList(){//my constructor
frame();
loadListFromDB();
}
public void frame(){//
//codes for frame setsize,titles etc...
tblList = new JTable();
tblList.getTableHeader().setPreferredSize(new Dimension(100, 40));
tblList.getTableHeader().setFont(new Font("SansSerif", Font.BOLD, 25));
tblList.setAutoCreateRowSorter(true);
tblList.setModel(model);
scrollPane.setViewportView(tblList);
loadListFromDB();
}
public void loadListFromDB(){
String sql = "SELECT emp_id,lname,fname,positional_status from tblEmployee";
try{
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()){
Vector row = new Vector();
for (int i = 1; i <= 4; i++){
row.addElement( rs.getObject(i) );
}
model.addRow(row);
}
}catch(Exception err){
//for error code
}
}
我想如何以这种方式添加 tableredered?谁能举个简单的例子来改变行的颜色?在此先感谢..我的程序停在这个问题上。
【问题讨论】:
-
但是数据只是从一开始就初始化了,我的数据来自数据库,我不知道如何根据你的例子把我的数据放在 string[][] 中。
-
您的问题不是将数据放入表中,而是更改行颜色。您应该查看示例的
TableCellRenderer部分 - 并将渲染添加到您的表格中。 -
你也可以看看Table Row Rendering
-
数据源无关;这是另一个example。
标签: java swing jtable tablecellrenderer