Существует два способа создания JTable с базовым подготовленным набором данных:
Object
Vector
, элементами которого являются Vector
, чтобы вы могли сделать это:
Object [][] model = {{"Marrie", "Female","33"},{"John","Male","32"}};
JTable table = new JTable(model);
, или вы могли бы сделать это:
Vector model = new Vector();
Vector row = new Vector();
row.add("Marrie");
row.add("Female");
row.add("33");
model.add(row);
row = new Vector();
row.add("John");
row.add("Male");
row.add("32");
model.add(row);
JTable table = new JTable(model);
Следующим шагом будет чтобы реализовать свой собственный TableModel
, чтобы использовать класс DataObject
, который вы собрали вместе (обратите внимание, что классы Java начинаются с кепок). Расширение AbstractTableModel
облегчает жизнь, так как вам нужно всего лишь реализовать три метода:
public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);
первые два из них просты, вы можете получить размер вашего Vector
для подсчета строк и hard-code val для количества столбцов. getValueAt
, где вы извлекаете данные из своего DataObject
Вот пример использования анонимного класса, расширяющий AbstractTableModel
.
final Vector<DataObject> myDataObjects = new Vector<DataObject>();
myDataObjects.add(...);// add your objects
JTable table = new JTable(new AbstractTableModel() {
public int getRowCount() {return myDataObjects.size();}
public int getColumnCount() { return 3; }
public Object getValueAt(int row, int column){
switch (column) {
case 0:
return myDataObjects.get(row).getName();
case 1:
return myDataObjects.get(row).getGender();
case 2:
return myDataObjects.get(row).getAge();
default:
return "";
}
}
});
Я сохранил Vector
, чтобы он был близок к вашей текущей реализации. Вы можете легко изменить это на ArrayList в этом примере без каких-либо забот.
Из https://access.redhat.com/documentation/en-us/red_hat_jboss_middleware_for_openshift/3/html-single/red_hat_java_s2i_for_openshift/index#configuration_environment_variables похоже, что переменная работы должна указывать следующую среду с расширением .jar
или без него, я не уверен)
JAVA_APP_JAR=app-exec