Задать вопрос
@Sterio23400
Начинающий разработчик Unity.

Как в методе кнопки создать объект?

Добрый день, недавно начал изучать Java, а именно библиотеку Swing, такой вопрос - я создаю кнопку (button1) и задаю ей метод, ну или как в Jave - слушатель с помощью addActionListener, который по идее при нажатии должен добавлять на панель panel таблицу JTable, однако при нажатии ничего не происходит, можете подсказать что не так или же может существуют альтернативные методы добавления методов к кнопкам?
package com.company;
import javax.swing.*;

import java.awt.Font;
import java.awt.event.*;
import java.awt.FlowLayout;

import java.awt.event.ItemEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionListener;

public class Main implements ActionListener{

    public static void main(String[] args)
    {
        JFrame frame = new JFrame("Первое окно");
        frame.setSize(600, 600);

        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));

        JLabel label = new JLabel("Введите длину и высоту двухмерного массива");
        JTextField textField = new JTextField(10);
        JTextField textField2 = new JTextField(10);

        JButton button1 = new JButton("Создать массив");
        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JTable table = new JTable(2,2);
                panel.add(table);
            }
        });

        JButton button2 = new JButton("Сохранить измененный массив в файл");

        panel.add(label);
        panel.add(textField);
        panel.add(textField2);
        panel.add(button1);
        panel.add(button2);

        frame.add(panel);

        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent e){ }
}
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Проблема в отрисовке panel. Если вы попробуете изменить размер окна - оно перерисуется вместе с вашими изменениями.
Можно добавить panel.updateUI(); после panel.add(table);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы