Расположение элементов на форме - Java

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

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

Есть код там две кнопки нужно сделать + она добавляет элементы в панель но не так как надо А нужно сделать чтобы ид был тоненький а текст занимал до конца экрана место и при этом когда количество элементов выходит за предел панели появлялись полосы прокрутки
import java.awt.BorderLayout;
import java.awt.Dialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
 
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
public class sc {
 
    public static int x = 20;
    public static int y = 0;
    public static int i = 1;
 
    public static void createGUI() {
 
        JFrame scenario = new JFrame("Описание сценария");
        scenario.setDefaultCloseOperation(scenario.EXIT_ON_CLOSE);
        scenario.setBounds(200, 200, 500, 500);
        scenario.setLayout(new GridLayout(2, 1));
        JPanel p1 = new JPanel();
        p1.setLayout(null);
        scenario.add(p1);
        final JPanel p2 = new JPanel();
        final JScrollPane p3 = new JScrollPane(p2);
        p2.setLayout(new GridLayout(0, 2));
        scenario.add(p3);
        JButton choose = new JButton("Выберите файл");
        choose.setBounds(10, 10, 130, 30);
        p1.add(choose);
        JButton plus = new JButton("+");
        plus.setBounds(150, 10, 45, 30);
        p1.add(plus);
        JComboBox cmbact = new JComboBox();
        cmbact.setBounds(50, 100, 100, 30);
        p1.add(cmbact);
        JComboBox cmbuse = new JComboBox();
        cmbuse.setBounds(200, 100, 100, 30);
        p1.add(cmbuse);
        scenario.repaint();
        scenario.setVisible(true);
 
        choose.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JFileChooser chooser = new JFileChooser();
                chooser.setFileFilter(new ExtFileFilter());
                chooser.showOpenDialog(null);
                File f = chooser.getSelectedFile();
                String filename = f.getAbsolutePath();
                Files files = new Files();
                ArrayList<String> ucase = files.parseuse(filename);
                ArrayList<String> act = files.parseact(filename);
                System.out.println("Actor - " + act);
                System.out.println("UseCase - " + ucase);
                for (int i = 0; i < act.size(); i++) {
                    cmbact.addItem(act.get(i));
                }
                for (int i = 0; i < ucase.size(); i++) {
                    cmbuse.addItem(ucase.get(i));
                }
            }
        });
        plus.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int number = p2.getComponentCount() + 1;
                JLabel id = new JLabel("" + i);
                JTextArea text = new JTextArea("text" + number);
                JScrollPane pane = new JScrollPane(text);
                id.setLocation(x - 20, y);
                id.setSize(20, 20);
                pane.setSize(450, 110);
                pane.setLocation(x, y);
                text.setText(null);
                text.setLineWrap(true);
                p2.add(id);
                p2.add(pane);
                System.out.println(x + "-" + y);
                System.out.println(i);
                y = y + 120;
                i++;
                p3.repaint();
                p3.revalidate();
            }
        });
    }
 
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createGUI();
            }
        });
    }
}
Подскажите по поводу размещения и полос прокрутки если добавить 9+ элементов становится все нормально
Подскажите по поводу размещения и полос прокрутки если добавить 9+ элементов становится все нормально Почему никто не пишет ничего

Решение задачи: «Расположение элементов на форме»

textual
Листинг программы
static Dimension DIMENSION;

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

6   голосов , оценка 4.167 из 5