Вот код:Почему setPreferredSize не меняет размер кнопки?
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class TestGrid {
public static void main(String[] args) {
JFrame frame = new JFrame("Colored Trails");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 9));
panel.setMaximumSize(new Dimension(9*30-20,4*30));
JButton btn;
for (int i=1; i<=4; i++) {
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 10));
panel.add(btn);
for (int j=1; j<=4; j++) {
btn = new JButton();
btn.setPreferredSize(new Dimension(30, 30));
panel.add(btn);
}
}
mainPanel.add(panel);
frame.add(mainPanel);
frame.setSize(450,950);
frame.setVisible(true);
}
}
Я полагаю, есть таблица кнопок с 4 строк и 9 столбцов. И средний столбец должен быть более узким, чем другие столбцы. Я пробовал Dimension(30, 10)
и Dimension(30, 10)
оба эффекта не влияют на ширину среднего столбца. Зачем?
Прочитайте учебник. Вы получили несколько ссылок на учебник Swing. Это ясно объясняется в учебнике «Как использовать грид-макет». Бросьте наводнение на форуме со всеми этими вопросами, пока не сделаете какое-то основное чтение. В настоящее время 7 вопросов, связанных с менеджерами макетов в последние пару дней. Это пугает мой разум, люди продолжают отвечать на эти вопросы, особенно когда вы не принимаете ответы на события. – camickr
@camickr, никто не заставляет вас отвечать на мои вопросы. Есть люди, у которых есть вопросы, и есть люди, которые готовы ответить на эти вопросы. И эти люди могут найти общий язык и способ сотрудничества. Если вы не понимаете, почему это работает, просто не принимайте участия в этом. И не мешайте другим людям. – Roman
Я понимаю, как это работает. Вы проводите некоторые исследования, и когда у вас возникла проблема, вы отправляете квесто с просьбой о помощи. Мы не здесь, чтобы делать чтение для вас. Если вы приложите усилия, мы приложим усилия. – camickr