Как задать размер кнопки JButton на панели Jpanel - Java

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

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

Имеется JFrame на котором распложены пара панелей. На панельках размещаются кнопки, окна. Вопрос в том, что не получается жестко задать ни размеры самих панелей ни размеры элементов на панелях.
public class TestClass1 extends JFrame {
 
    private static boolean permit;
    private static int count;
    private static String str;
            
//----------------------------------------------------------------------
// создание объектов
    
    private JTextArea input = new JTextArea("input");
    private JScrollPane scrollPaneInput = new JScrollPane(input);
    private JPanel panel1 = new JPanel();
    private JPanel panel2 = new JPanel();
    private JButton start = new JButton("Start");
    private JLabel label1 = new JLabel("label1");
    
    // конструктор класса JavaEniseyGraphic (должен иметь класса)
    public TestClass1(){
 
        // инициализация компонентов
        initComponents();
    }
 
    // метод инициализации компонентов формы
    private void initComponents(){
        
        // положение на экране
        setBounds(15,30,500,300);
        // размер формы
        setSize(500, 300);
        // контейнер для размещения компонентов формы
        Container container = getContentPane();
 
        input.setColumns(20);
        input.setRows(10);
        input.setLayout(new BorderLayout());
        input.setSize(20, 20);
       
        panel1.add(BorderLayout.CENTER, scrollPaneInput);
        panel1.setBorder(new CompoundBorder(new EmptyBorder(5, 5, 5, 5), new TitledBorder("Gaphic")));
//        panel1.setSize(100, 100);
        panel1.add(label1);
 
        start.setSize(170, 20);
        panel2.setBorder(new CompoundBorder(new EmptyBorder(5, 5, 5, 5), new TitledBorder("Control")));
//        panel2.setSize(100, 100);
        panel2.add(start);
 
        // размещение панелей    
        container.add(BorderLayout.CENTER, panel1);
        container.add(BorderLayout.EAST, panel2);
        
        // зарегистрировать экземпляр класса обработчика события start
        start.addActionListener(new startEventListener());
        
    } 
 
    // клас имплементации события нажатия start
    class startEventListener implements ActionListener {
 
        @Override
        // обработка события нажатия на button start
        public void actionPerformed(ActionEvent e) {
            // Флаг открытия pcap
            permit = true;
            input.setText("Hi!");
        }      
    }
    
    // метод получения permit в другом классе
    public boolean getPermit() {
        return permit;
    }  
    // метод установи permit из другого класса
    public void setPermit(boolean permit ) {
        this.permit = permit;
    }  
    // метод установки count из другого класса
    public void setCount(int count ) {
        this.count = count;
    }  
    // метод передачи строки txt в input из другого класса
    public void setInput(String txt) {
        this.str = txt;
        this.input.setText(str);
        this.label1.setText(str);
    }    
    
}
Например как можно жестко задать размер кнопки start на Panel2? Вариант start.setSize(170, 20); не работает.

Решение задачи: «Как задать размер кнопки JButton на панели Jpanel»

textual
Листинг программы
start.setPreferredSize(new Dimension(170,20));

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

8   голосов , оценка 3.625 из 5