Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Странное поведение JTable / 5 сообщений из 5, страница 1 из 1
23.10.2015, 23:03
    #39085396
msv_serg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение JTable
Здравствуйте ув. форумчане. помогите пожалуйста с проблемой начинающему кодеру. Станно ведет себя JTable, через некорое время использовани программы строки таблицы 'проявляются ' при нажатии мышки. Не знаю даже что и думать.....

ссылки на исходники:
Main.java
Table.java
Windows.java

Windows.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Windows implements ActionListener{
    JFrame mainFraim;
    JTable table;
    Table tableModel;
    JButton buttonOne, buttonTwo;
    String[] mass;
    JPanel panel;

    Windows(){
        mass = new String[3];
        mass[0] = "0";
        mass[1] = "1";
        mass[2] = "2";

        mainFraim = new JFrame("Окно");
        mainFraim.setBounds(10, 10, 400, 300);
        mainFraim.setLayout(null);



        buttonOne = new JButton("Один");
        buttonOne.setBounds(0, 0, 100, 30);
        mainFraim.add(buttonOne);
        buttonTwo = new JButton("Два");
        buttonTwo.setBounds(110, 0, 100, 30);
        mainFraim.add(buttonTwo);

        buttonOne.addActionListener(this);
        buttonTwo.addActionListener(this);



    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == buttonOne){
            panel = new JPanel();
            panel.setBounds(0, 40, 300, 200);
            panel.setBackground(Color.black);
            mainFraim.add(panel);
            tableModel = new Table();
            table = new JTable(tableModel);
            tableModel.addData(mass);
            JScrollPane jsp = new JScrollPane(table);
            jsp.setBounds(10, 10, 200, 200);
            panel.add(jsp);

        }else if (e.getSource() == buttonTwo){
            panel = new JPanel();
            panel.setBounds(0, 40, 300, 200);
            panel.setBackground(Color.black);
            mainFraim.add(panel);
            tableModel = new Table();
            table = new JTable(tableModel);
            JScrollPane jsp = new JScrollPane(table);
            jsp.setBounds(10, 10, 200, 200);
            panel.add(jsp);
            for (int i = 0; i < 10; i++)tableModel.addData(mass);
        }
    }
}



Table.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import javax.swing.table.AbstractTableModel;
import java.util.ArrayList;

public class Table extends AbstractTableModel {

    private ArrayList<String[]> dataArrayList;


    public Table(){
        dataArrayList = new ArrayList<String[]>();
        for (int i = 0; i < dataArrayList.size(); i++){
            dataArrayList.add(new String[getColumnCount()]);
        }
    }
    @Override
    public int getRowCount() {
        return dataArrayList.size();
    }

    @Override
    public int getColumnCount() {
        return 3;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        String []rows = dataArrayList.get(rowIndex);
        return rows[columnIndex];
    }

    public void addData(String[] row){
        String []rowTable = new String[getColumnCount()];
        rowTable = row;
        dataArrayList.add(rowTable);
    }

}



Main.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import javax.swing.*;

public class Main {
    public static void main(String[] args){
    Windows mainWindow = new Windows();
        mainWindow.mainFraim.setVisible(true);
        mainWindow.mainFraim.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
}
...
Рейтинг: 0 / 0
25.10.2015, 16:19
    #39085848
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение JTable
Панели только добавляются на mainFraim и никогда не удаляются?
...
Рейтинг: 0 / 0
26.10.2015, 19:22
    #39087352
msv_serg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение JTable
Похоже да
...
Рейтинг: 0 / 0
28.10.2015, 21:51
    #39089347
msv_serg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение JTable
BlazkowiczПанели только добавляются на mainFraim и никогда не удаляются?
Надо удалять панели? Как удалять панели??
...
Рейтинг: 0 / 0
31.10.2015, 20:34
    #39091849
bobject
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странное поведение JTable
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public void addData(String[] row)
{
        // Добавляем строку (JTable не знает о ней)
        dataArrayList.add(Arrays.copyOf(row, getColumnCount()));

        // Оповещаем об этом (теперь знает)
        fireTableRowsInserted(dataArrayList.size(), dataArrayList.size());
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Странное поведение JTable / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]