Перерисовка таблици - Java
Формулировка задачи:
Добрый день. Есть фрейм на нем панель на ней таблица, при клике по kvartiri1.addActionListener происходит добавление данных в таблицу она не не отображается пока не потянешь за край окна программы.
Листинг программы
- package test;
- import javax.swing.*;
- import javax.swing.JFrame;
- import javax.swing.plaf.basic.BasicOptionPaneUI;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- /**
- * Created by User on 14.09.2016.
- */
- public class Swing {
- public static void main(String[] args) {
- final JFrame frame = new JFrame("test");
- frame.setSize(1000, 600);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setLocationRelativeTo(null);
- frame.setLayout(new GridBagLayout());
- //Верхнее меню
- JPanel panelTable = new JPanel(new BorderLayout());
- //JTable
- final BookTableModel btm = new BookTableModel();
- JTable bookTable = new JTable(btm);
- JScrollPane bookScroll = new JScrollPane(bookTable);//Прокрутка
- panelTable.add(bookScroll);
- panelTable.setBackground(Color.white);
- frame.add(panelTable,new GridBagConstraints(0,0,6,6,0.9,0.9,GridBagConstraints.NORTH,
- GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
- Menu menu = new Menu(frame,panelTable,btm);
- frame.setVisible(true);
- }
- }
Листинг программы
- package test;
- import javax.swing.table.AbstractTableModel;
- import java.util.ArrayList;
- /**
- * Created by User on 14.09.2016.
- */
- public class BookTableModel extends AbstractTableModel{
- private int columCount = 3;
- private ArrayList<String []> dataArrayList;
- BookTableModel(){//Инициализация
- dataArrayList = new ArrayList<String []>();
- for(int i = 0; i < dataArrayList.size();i++){
- dataArrayList.add(new String[getColumnCount()]);
- }
- }
- public int getRowCount() {//возвращает Количество строк табл
- return dataArrayList.size();
- }
- public int getColumnCount() {//возвращает Количество колонок табл
- return columCount;
- }
- public Object getValueAt(int rowIndex, int columnIndex) {//Возвращает значение по номеру строки столбца
- String []rows = dataArrayList.get(rowIndex);
- return rows[columnIndex];
- }
- public String getColumnName(int columnIndex){
- String res = "";
- switch (columnIndex){
- case 0:res = "Тедефон";break;
- case 1:res = "Адрес";break;
- case 2:res = "Имя";break;
- }
- return res;
- }
- public void addDate(String []row){//Добавляет одну строку
- System.out.println(getColumnCount());
- String []rowTable = new String[getColumnCount()];
- rowTable = row;
- dataArrayList.add(rowTable);
- }
- public void addDate(){//Вытаскуем из БД данные заносим в массив и отправляем на добовление
- String []data = {
- "123",
- "123",
- "123"
- };
- for(int i = 0;i < 10;i++){
- addDate(data);
- }
- }
- }
Листинг программы
- package test;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Arrays;
- /**
- * Created by User on 14.09.2016.
- */
- public class Menu {
- Menu(final JFrame frame, final JPanel panelTable, final BookTableModel btm){
- JMenuBar menuBar = new JMenuBar();
- JMenu kvartiriMain = new JMenu("kvartiri");
- JMenuItem kvartiri1 = new JMenuItem("Аренда: предложение");
- JMenuItem kvartiri2 = new JMenuItem("Продажа недвижимости");
- kvartiriMain.add(kvartiri1);
- kvartiriMain.add(kvartiri2);
- menuBar.add(kvartiriMain);
- kvartiri1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- //Конект базы данных передаёться
- btm.addDate();
- panelTable.validate();
- frame.validate();
- }
- });
- kvartiri2.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- System.out.println("k 2");
- }
- });
- frame.setJMenuBar(menuBar);//Добавление меню в верхнюю панель
- }
- }
Решение задачи: «Перерисовка таблици»
textual
Листинг программы
- repaint();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д