1
我創建了一個表,其中的參數之一是顏色,像這樣如何操作顏色值?
table http://www.freeimagehosting.net/newuploads/fjuzi.png
我還沒有覆蓋從我創建表格模型getValue方法,這意味着,當我得到的顏色它們以對象的形式出現。如果我將它們存儲爲對象,或字符串我會得到的數值爲:
java.awt.Color[r=255,g=0,b=0]
這裏是我的表模型,以防萬一:
private static final Object[][] DATA = {
{ "1", "Task 1", new Integer(10), false, new Integer(0), Color.red },
{ "2", "Task 2", new Integer(10), false, new Integer(0), Color.blue },
{ "3", "Task 3", new Integer(10), false, new Integer(0),
Color.green },
{ "4", "Task 4", new Integer(10), false, new Integer(0),
Color.orange },
{ "5", "Task 5", new Integer(10), false, new Integer(0),
Color.black } };
private MyTableModel myTableModel = new MyTableModel(DATA);
class MyTableModel extends DefaultTableModel {
private static final String[] COLUMN_NAMES = { "Station #", "Name",
"avg Time", "Buffer", "Buffer Parts", "Color" };
public MyTableModel(Object[][] data) {
super(data, COLUMN_NAMES);
}
@Override
public Class getColumnClass(int c) {
//System.out.println("Class for " + c + ": " + getValueAt(0, c).getClass().toString());
return getValueAt(0, c).getClass();
}
@Override
public boolean isCellEditable(int row, int col) {
if (col == 0) {
return false;
} else if (col == 4) {
boolean di = (Boolean) getValueAt(row, (col - 1));
if (!di) {
return false;
} else {
return true;
}
} else {
return true;
}
}
public void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i = 0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j = 0; j < numCols; j++) {
Object datum = getValueAt(i, j);
// System.out.print(" " + data[i][j]);
System.out.print(" " + datum);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
所有從表中的值存儲在包含HashMap它們被傳遞給另一個類,我需要創建一個顏色向量來存儲已經設置在表上的顏色。
Station 1=[1, Task 1, 10, false, 0, java.awt.Color[r=255,g=0,b=0]]
Station 2=[2, Task 2, 10, false, 0, java.awt.Color[r=0,g=0,b=255]]
Station 3=[3, Task 3, 10, false, 0, java.awt.Color[r=0,g=255,b=0]]
Station 4=[4, Task 4, 10, false, 0, java.awt.Color[r=255,g=200,b=0]]
Station 5=[5, Task 5, 10, false, 0, java.awt.Color[r=0,g=0,b=0]]
我環顧四周,但沒有找到任何信息,所以有什麼對付它,所以我可以存儲與傳遞值所使用的顏色的最佳方法是什麼?
我希望自己清楚,如果需要其他信息,請告訴我。
我沒有意識到這一點。但是,如何用這些值填充顏色矢量?通過這樣做,我得到一個「NoSuchElementException」: private static Color colorsstation [] = null; Color cor =(Color)keyvaluesIterator.next(); colorsstation [i] = cor; – 2012-08-09 18:17:25
@Luis Afonso Teixeira爲什麼你需要獲取/將顏色添加到JTables單元格中,只有這樣才能得到更具體的答案:-) – mKorbel 2012-08-09 18:28:56
我從該表中獲取值並將它們作爲散列圖到另一個類,我將繪製一些東西。在那裏,我試圖收集傳遞的顏色來定義我將在該類上繪製的矩形的顏色!希望我現在明白了:s – 2012-08-09 18:38:57