1
我是java新手。我想要做的是創建一個表,顯示對象的列表。我想要的是根據對象成員的值爲JTable中的特定行賦予顏色。我看到很多選擇,比如使用「TableCellRender」等等。我也嘗試過了。但問題是我正在使用Netbeans IDE,因此我不是通過代碼創建表。有人可以幫我改變由NetBeans定義的表格的行顏色嗎?在netbeans中着色jtable行
在此先感謝。
我是java新手。我想要做的是創建一個表,顯示對象的列表。我想要的是根據對象成員的值爲JTable中的特定行賦予顏色。我看到很多選擇,比如使用「TableCellRender」等等。我也嘗試過了。但問題是我正在使用Netbeans IDE,因此我不是通過代碼創建表。有人可以幫我改變由NetBeans定義的表格的行顏色嗎?在netbeans中着色jtable行
在此先感謝。
您可以使用DefaultTableCellRenderer
爲JTable
替代行着色。
table.setDefaultRenderer(Object.class, new TableCellRenderer(){
private DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(isSelected){
c.setBackground(Color.YELLOW);
}else{
if (row%2 == 0){
c.setBackground(Color.WHITE);
}
else {
c.setBackground(Color.LIGHT_GRAY);
} }
//Add below code here
return c;
}
});
如果你想使用特定行的值爲你的行着色,那麼你可以使用這樣的東西。將這些行添加到上面
if(table.getColumnModel().getColumn(column).getIdentifier().equals("Status")){//Here `Status` is column name
if(value.toString().equals("OK")){//Here `OK` is the value of row
c.setBackground(Color.GREEN);
}
}
謝謝..這有所幫助。 – arvonline
任何人都可以給你的最好的建議是溝渠GUI構建器,直到你明白它在幕後做了什麼。 –
對於[示例](http://stackoverflow.com/a/5799016/230513)。 – trashgod
您仍然可以通過您的代碼訪問表 – MadProgrammer