Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > JTable полная очистка.


Автор: Fameing 21.6.2006, 14:46
Как полностю очиттить JTable  от значений. Просто данные в JTable  должни обновлятся каждую секунду. 

Автор: batigoal 21.6.2006, 15:29
Можешь просто подменять модель новой. 

Автор: Fameing 21.6.2006, 15:58
Так и делаю, но в большинстве случаев старые данные остаются и плюсуются новые. 

Автор: powerOn 21.6.2006, 16:35
Цитата(Fameing @  21.6.2006,  16:58 Найти цитируемый пост)
Так и делаю,


Давайте-ка, товарищ, мы на код ваш взгянем.  smile  

Автор: Fameing 21.6.2006, 17:49
Код

public class ConnectInfo extends JFrame {
    private JTable jt;
    private DefaultTableModel model;

    public ConnectInfo() {
        model = new DefaultTableModel();
        model.addColumn("Col1");
        model.addColumn("Col2");
        model.addColumn("Col3");
        jt = new JTable(model);
        jt.setShowGrid(true);
        jt.setShowHorizontalLines(true);
        jt.setShowVerticalLines(true);
        getContentPane().add(jt);
        setVisible(true);
        setBounds(400, 200, 200, 800);
        Thread m_thr = new Thread() {
            public void run() {
                while (true) {
                    try {
                        updates();
                    } catch (MalformedURLException e) {
                        System.out.println(e);
                    }
                    try {
                        Thread.sleep(3000);
                    } catch (Exception e) {
                        System.out.println(e);
                    }
                }
            }
        };
        m_thr.start();
    }


    public void updates() throws MalformedURLException {
        BurlapProxyFactory factory = new BurlapProxyFactory();
        BasicClient BasicClient = (BasicClient) factory.create(BasicClient.class, "http://10.44.1.72:8081/lightclient/AdminCServer");
        int coutMAIN = BasicClient.getDataBaseInfoMAIN().length;
        String[][] meta = BasicClient.getDataBaseInfoMAIN();
        for (int x = 0; x <= coutMAIN - 1; x++) {
            model.insertRow(x, meta[x]);
        }
        jt.repaint();
        for (int x = 1; x <= model.getRowCount() - 1; x++) {
            model.removeRow(x);
        }
    }

    public static void main(String[] args) {
        ConnectInfo ConnectInfo = new ConnectInfo();
        ConnectInfo.setTitle("WebClient Statistic for DataBase Conections");
        ConnectInfo.setResizable(false);
        ConnectInfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ConnectInfo.setVisible(true);
    }
}
 

Автор: powerOn 21.6.2006, 19:39
Цитата(Fameing @  21.6.2006,  18:49 Найти цитируемый пост)
for (int x = 1; x <= model.getRowCount() - 1; x++) {
            model.removeRow(x);
        }


Я так понимаю это и есть удаление. 
Посмотри внимательно, здесь чисто логическая ошибка связанная с неправельным индексом строки таблицы. Я уверен ты найдешь её.

попробуй удалять так:
Код

while (model.getRowCount() > 0)  model.removeRow(0);

 

Автор: Fameing 22.6.2006, 09:48
Спасибо помогло. Лутше форума чем этот я невыдел. 

Автор: powerOn 22.6.2006, 14:30
Цитата(Fameing @  22.6.2006,  10:48 Найти цитируемый пост)
Лутше форума чем этот я невыдел.  

ну так заходи к нам чаще!  smile 
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)