Swing. Увеличение числа ячеек в JTable - Java

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

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

Всем добрый день! Есть проблема, которая пока не решается. Программа должна увеличивать/уменьшать по кнопке "+" и "-" размер таблицы. Но размер не изменяется. Видимо надо как-то добавлять потоки, но информации я не нашел. Может кто опытным глазом посмотрит. Спасибо.
import javax.swing.*;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MatrixForm {
    public  int row = 2;
    public  int column = 2;
 
    public MatrixForm(){
 
        //////////////////// фрейм ////////////////////////////////////////
        JFrame frame = new JFrame("Frame");
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
        frame.setSize(600, 400);
        frame.setLocationRelativeTo(null);
        frame.setLayout(null);
 
        ///////////// создали панель и ползунок /////////////////////
        JPanel panel = new JPanel();
        panel.setBackground(Color.DARK_GRAY);
        JScrollPane pane = new JScrollPane(panel);
        pane.setBounds(50, 50, 200, 100);
        frame.add(pane);
        panel.setLayout(new FlowLayout());

////////////////////////кнопки + и -  ////////////////////////
 
        JButton butMinus = new JButton("-");
        JButton butPlus = new JButton("+");
        butMinus.setBounds(80, 170, 50, 20);
        frame.add(butMinus);
        butPlus.setBounds(130, 170, 50, 20);
        frame.add(butPlus);
 
        ////////////// добавили события для ктопок ////////////
        MyActionPlus ap = new MyActionPlus();
        butPlus.addActionListener(ap);
 
        MyActionMinus am = new MyActionMinus();
        butMinus.addActionListener(am);
 
/////////////////// создали таблицу ////////////////////////////
 
        JTable table = new JTable(row, column);
        TableModel model = table.getModel();
        TableColumn tc = null;
        table.setRowHeight(20);
        for (int i = 0;i < model.getColumnCount(); i++){
            tc = table.getColumnModel().getColumn(i);
            tc.setPreferredWidth(30);
        }
        panel.add(table);
        frame.setVisible(true);
    }
 
    public class MyActionPlus implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            row++;
            column++;
        }
    }
 
    public class MyActionMinus implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            row--;
            column--;
        }
    }
 
}
Main:
import javax.swing.*;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class Main{
 
    public static void main(String[] args){
 
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new MatrixForm();
            }
        });
 
}
}

Решение задачи: «Swing. Увеличение числа ячеек в JTable»

textual
Листинг программы
public class MyActionPlus implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            row++;
            column++;
            table.addColumn(Что-то тут);
        }
    }

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


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

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

11   голосов , оценка 4.091 из 5