java. как array вбить в таблицу?

psilocybe

есть poinxy[i] и jTable
ну цикл, это всё понятно, а как непосредственно прописывать?
jTable1.setValueAt(pointxy[1],0,0);
неа?
и обратно как вытаскивать/в файл сохранять?

olga1969

В общем, лучше параметризовать графический объкт JTable своей моделью данных, которая есть класс, наследуемый от AbstractTableModel. Надо добавить просто реализацию некоторых методов, которые есть по сути callbacks и будут потом вызываться объктом JTable для отрисовки таблицы. Вот примерно как это реализуется:
 class MyPoint{
int x;
int y;
}
class MyTableModel extends AbstractTableModel{
private MyPoint[] pointxy;
private String [] columnNames = {"X","Y"};
MyTableModel(MyPoint[] data){
this.pointxy = data;
// other blablabla
}
public int getColumnCount { return 2}
public int getRowCount { return pointxy.length; }
public Object getValueAt(int row, int col) {
MyPoint p = pointxy[row];
String str;
col == 0 ? str=String.valueOf(p.x) : str = String.valueOf(p.y) ;
return str;
}
public String getColumnName(int col) {
return columnNames[col];
}
public void setValueAt(Object val, int row, int col) {
MyPoint p = pointxy[row];
String str = val.toString;
int valInt = Integer.parseInt(str);
col == 0 ? p. x= valInt : p.y = valInt;
// Indicate the change has happened:
fireTableDataChanged;
}
public boolean isCellEditable(int row, int col) {
return true;
}
}

Насчет сохранения в файле. Можно воспользоваться просто сериализацией. Сохранить объект
 
private MyPoint[] pointxy;

в файле, а потом при инициализации вытаскивать его
 
MyPoint[] array = ... //deserialization code

и использовать как параметр в конструкторе MyTableModel:
 
MyTableModel tm = new MyTableModel(array) ;

Соответсвенно, надо потом написать проинициализировать JTable:
 
JTable jt = new JTable(tm);

enochka1145

Eclipse:
TableViewer viewer = new TableViewer(...);
...
viewer.setContentProvider(new ArrayContentProvider;
viewer.setInput(твойМассив);

enochka1145

// ... обратно как вытаскивать/в файл сохранять
Хранить данные в самой таблице, ИМХО, плохой дизайн. Кто знает, как она хранит данные... Если у неё не было шанса появиться на экране, так она может ничего и не хранит.

olga1969

Ты имеешь ввиду паттерн Прокси?

psilocybe

пасиба

psilocybe

пасиба. буду думать

olga1969

TableViewer...
Это из SWT ?

enochka1145

Нет, скорее старый добрый Модель-Вид-Контролёр. Прокси - это что-то общее связанное с делегированием, никогда не применяющееся само по себе, насколько я помню.

enochka1145

Из JFace. Из SWT - Table.

olga1969

Нет, скорее старый добрый Модель-Вид-Контролёр. Прокси - это что-то общее связанное с делегированием, никогда не применяющееся само по себе, насколько я помню.
Ну, понятно. Я имел ввиду, что пока таблицу не рисуют, то и данные из файла тянуть не надо. По мере необходимости. Ладно, не суть важно.
Оставить комментарий
Имя или ник:
Комментарий: