powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Странное поведение JTable
5 сообщений из 5, страница 1 из 1
Странное поведение JTable
    #39085396
msv_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте ув. форумчане. помогите пожалуйста с проблемой начинающему кодеру. Станно ведет себя 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
Странное поведение JTable
    #39085848
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панели только добавляются на mainFraim и никогда не удаляются?
...
Рейтинг: 0 / 0
Странное поведение JTable
    #39087352
msv_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже да
...
Рейтинг: 0 / 0
Странное поведение JTable
    #39089347
msv_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПанели только добавляются на mainFraim и никогда не удаляются?
Надо удалять панели? Как удалять панели??
...
Рейтинг: 0 / 0
Странное поведение JTable
    #39091849
bobject
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Странное поведение JTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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