JTable и JButton

я пишу настольное Java-приложение. у меня есть текстовые поля для получения данных от пользователя. A JButton, который принимает входные данные и обрабатывает их. И JTableдля заполнения обработанных данных.

вот мой конструктор, вызываемый из main.

    public ChangeButtonLabel()
    {
        JFrame f=new JFrame();
            f.setLayout(null);

        JLabel lab1=new JLabel("Name");
            JLabel lab2=new JLabel("Age");

        //table=new JTable(model);

        text1=new JTextField(20);
            text2=new JTextField(20);


        button=new JButton("OK");

            lab1.setBounds(10,10,100,20);
            text1.setBounds(120,10,100,20);

            lab2.setBounds(10,40,100,20);
            text2.setBounds(120,40,100,20);

            Table=new ArrayList();
        Table.add(new ArrayList());
        ((ArrayList)Table.get(0)).add("\nProgram Name   ");
        ((ArrayList)Table.get(0)).add("Count   ");
        ((ArrayList)Table.get(0)).add("Elapsed Time   ");
        ((ArrayList)Table.get(0)).add("Average ET\n");

        button.setBounds(120, 100, 100, 20);        

        button.addActionListener(new MyAction());

            Object[][] data = {
                {"Program Name","count","ET","Avg ET"}
            };


        model = new DefaultTableModel(data,columnNames);

            dataTable = new JTable(model);

            dataTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
            dataTable.setFillsViewportHeight(true);

        dataTable.setBounds(220,130,300,200);
            f.add(lab1);
            f.add(text1);
            f.add(lab2);
            f.add(text2);

        f.add(dataTable);

        f.add(button);

            f.setVisible(true);
            f.setSize(300,350);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    }
}

при событии я пытаюсь обновить всю jtable, удалив ее предыдущие значения. вот код

model = new DefaultTableModel(data,columnNames);
dataTable.repaint();
dataTable=new JTable(model);

    dataTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
    dataTable.setFillsViewportHeight(true);

dataTable.setBounds(220,130,300,200);

model.fireTableDataChanged();

Где данные — это двумерный массив, а имена столбцов — это столбцы.

Но мой JTableне обновляется.

Если я делаю что-то неправильно, пожалуйста, дайте мне направление.

0
задан Saghir A. Khatri 6 May 2014 в 08:06
поделиться