Перерисовка таблици - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день. Есть фрейм на нем панель на ней таблица, при клике по kvartiri1.addActionListener происходит добавление данных в таблицу она не не отображается пока не потянешь за край окна программы.
Листинг программы
  1. package test;
  2. import javax.swing.*;
  3. import javax.swing.JFrame;
  4. import javax.swing.plaf.basic.BasicOptionPaneUI;
  5. import java.awt.*;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. /**
  9. * Created by User on 14.09.2016.
  10. */
  11. public class Swing {
  12. public static void main(String[] args) {
  13. final JFrame frame = new JFrame("test");
  14. frame.setSize(1000, 600);
  15. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16. frame.setLocationRelativeTo(null);
  17. frame.setLayout(new GridBagLayout());
  18. //Верхнее меню
  19.  
  20. JPanel panelTable = new JPanel(new BorderLayout());
  21. //JTable
  22. final BookTableModel btm = new BookTableModel();
  23. JTable bookTable = new JTable(btm);
  24. JScrollPane bookScroll = new JScrollPane(bookTable);//Прокрутка
  25.  
  26. panelTable.add(bookScroll);
  27. panelTable.setBackground(Color.white);
  28. frame.add(panelTable,new GridBagConstraints(0,0,6,6,0.9,0.9,GridBagConstraints.NORTH,
  29. GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
  30.  
  31. Menu menu = new Menu(frame,panelTable,btm);
  32. frame.setVisible(true);
  33. }
  34. }
Листинг программы
  1. package test;
  2. import javax.swing.table.AbstractTableModel;
  3. import java.util.ArrayList;
  4. /**
  5. * Created by User on 14.09.2016.
  6. */
  7. public class BookTableModel extends AbstractTableModel{
  8. private int columCount = 3;
  9. private ArrayList<String []> dataArrayList;
  10. BookTableModel(){//Инициализация
  11. dataArrayList = new ArrayList<String []>();
  12. for(int i = 0; i < dataArrayList.size();i++){
  13. dataArrayList.add(new String[getColumnCount()]);
  14. }
  15. }
  16.  
  17. public int getRowCount() {//возвращает Количество строк табл
  18. return dataArrayList.size();
  19. }
  20. public int getColumnCount() {//возвращает Количество колонок табл
  21. return columCount;
  22. }
  23. public Object getValueAt(int rowIndex, int columnIndex) {//Возвращает значение по номеру строки столбца
  24. String []rows = dataArrayList.get(rowIndex);
  25. return rows[columnIndex];
  26. }
  27. public String getColumnName(int columnIndex){
  28. String res = "";
  29. switch (columnIndex){
  30. case 0:res = "Тедефон";break;
  31. case 1:res = "Адрес";break;
  32. case 2:res = "Имя";break;
  33. }
  34. return res;
  35. }
  36. public void addDate(String []row){//Добавляет одну строку
  37. System.out.println(getColumnCount());
  38. String []rowTable = new String[getColumnCount()];
  39. rowTable = row;
  40. dataArrayList.add(rowTable);
  41. }
  42. public void addDate(){//Вытаскуем из БД данные заносим в массив и отправляем на добовление
  43. String []data = {
  44. "123",
  45. "123",
  46. "123"
  47. };
  48. for(int i = 0;i < 10;i++){
  49. addDate(data);
  50. }
  51. }
  52.  
  53. }
Листинг программы
  1. package test;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.util.Arrays;
  7. /**
  8. * Created by User on 14.09.2016.
  9. */
  10. public class Menu {
  11. Menu(final JFrame frame, final JPanel panelTable, final BookTableModel btm){
  12. JMenuBar menuBar = new JMenuBar();
  13. JMenu kvartiriMain = new JMenu("kvartiri");
  14. JMenuItem kvartiri1 = new JMenuItem("Аренда: предложение");
  15. JMenuItem kvartiri2 = new JMenuItem("Продажа недвижимости");
  16. kvartiriMain.add(kvartiri1);
  17. kvartiriMain.add(kvartiri2);
  18. menuBar.add(kvartiriMain);
  19. kvartiri1.addActionListener(new ActionListener() {
  20. public void actionPerformed(ActionEvent e) {
  21. //Конект базы данных передаёться
  22. btm.addDate();
  23. panelTable.validate();
  24. frame.validate();
  25. }
  26. });
  27. kvartiri2.addActionListener(new ActionListener() {
  28. public void actionPerformed(ActionEvent e) {
  29. System.out.println("k 2");
  30. }
  31. });
  32. frame.setJMenuBar(menuBar);//Добавление меню в верхнюю панель
  33. }
  34. }

Решение задачи: «Перерисовка таблици»

textual
Листинг программы
  1. repaint();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут