LINUX.ORG.RU

неработает обновление данных в таблице [java]

 


0

1
import java.util.Date;
 
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.swing.table.AbstractTableModel;
 
 
public class MyTableModel extends AbstractTableModel{
        private int noOfRows, noOfCols;
        private Object[][] mdata;
        private String subject;
        private String from;
        private Date date;
        private Message[] mess;
        public MyTableModel(int r, int c) {
                // TODO Auto-generated constructor stub
                noOfRows = r;
                noOfCols = c;
                mdata = new Object[noOfRows][noOfCols];
        }
        @Override
        public int getRowCount() {
                // TODO Auto-generated method stub
                return(noOfRows);
        }
        @Override
        public int getColumnCount() {
                // TODO Auto-generated method stub
                return(noOfCols);
        }
        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
                // TODO Auto-generated method stub
                return mdata[rowIndex][columnIndex];
        }
        public void setValueAt (Object odj, int r, int c) {
                this.fireTableStructureChanged();
                this.fireTableDataChanged();
        }
        public void wtf(Object ob) {
                try {
                        mess = (Message[])ob;
                        if (mess.length != 0) {
                                for (int i = 0; i < mess.length; i++) {
                                        from = InternetAddress.toString(mess[i].getFrom());
                                        subject = mess[i].getSubject();
                                        date = mess[i].getSentDate();
                        
                                        mdata[i][0]=mess[i].getMessageNumber();
                                        mdata[i][1]=from;
                                        if(i==1)
                                                System.out.println(from);
                               
                                        mdata[i][2]=subject;
                               
                                        mdata[i][3]=date;
                                }
                        }
                        else System.out.println("ПУСТО");
                        }
                        catch (MessagingException e){
                                e.printStackTrace();
                        }
        }
}
потом так (это все в другом классе)
model = new MyTableModel(mess.length, 4);
model.wtf(mess);
table.setModel(model);
table.validate();

фишка в том что это работает но только 1 раз при запуске формы, а потом когда я хочу вывести сообщения с другого ящика, ничего не обновляет но в массив все данные заносятся.

Ответ на: комментарий от hippi90

Читал уже. Оставил только this.fireTableStructureChanged(); все равно не работает((( Где есть подробные примеры??

shmel210
() автор топика
Ответ на: комментарий от hippi90

Проблему нашел. Невозможно менять визуальные элементы другой формы. Теперь вопрос в том как решить эту беду.

shmel210
() автор топика
Ответ на: комментарий от shmel210

Сударь, а вы точно из AWT Thread работаете с элементами другой формы?

belous_k_a
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.