Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
17 / 17 / 1
Регистрация: 28.03.2013
Сообщений: 80

Расположение кнопок в окне

27.05.2013, 14:03. Показов 2192. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как расположить 4 кнопки в окне: они должны быть выровнены по левому краю с отступом (например 10 px) от границ окна и иметь размер фиксированный (или в % от размера фрейма). Используя grid-box layout я написал такое

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
        
        setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
 
        c.fill = GridBagConstraints.HORIZONTAL;
        c.ipady = 0;
        c.insets = new Insets(10, 0, 0, 0);
        c.weightx = 0.5;
        c.gridx = 0;
        c.gridy = 0;        
        c.gridwidth = 1;
        add(nPBut, c);
 
        c.fill = GridBagConstraints.HORIZONTAL;
        c.ipady = 0;
        c.weightx = 0.5;
        c.insets = new Insets(10, 0, 0, 0);
        c.gridx = 0;
        c.gridy = 1;
        c.gridwidth = 1;
        add(redact, c);
 
        c.fill = GridBagConstraints.HORIZONTAL;
        c.ipady = 0;
        c.weightx = 0.5;
        c.gridx = 0;
        c.insets = new Insets(10, 0, 0, 0);
        c.gridy = 2;
        c.gridwidth = 1;
        add(poisk, c);
 
        c.fill = GridBagConstraints.HORIZONTAL;
        c.ipady = 0;
        c.weightx = 0.5;
        c.gridx = 0;
        c.insets = new Insets(10, 0, 0, 0);
        c.gridy = 3;
        c.gridwidth = 1;
        add(ot4eti, c);
Все кнопки находятся в 0-м столбце и каждая в своей строке, но т.к. остальные столбцы пустые, 0-й столбец занимает всю ширину панели. Подскажите пожалуйста как решается подобная задача?

Добавлено через 1 час 12 минут
Как вариант решения, я нашел, что можно вложить мою панель приведенную выше в другую панель с BorderLayout.WEST. Получается нечто похожее на то, что мне надо, но есть ли другие варианты?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2013, 14:03
Ответы с готовыми решениями:

Расположение кнопок
Имеется фрейм размером 500 на 350. Нужно добавить вниз 3 кнопки так,чтобы они расположились по всей ширине фрейма и были желательно одного...

Расположение кнопок и меток
Здравствуйте. Почти доделал свой проектик, но сталкнулся с такой проблемой. Не поулчается менять расположение кнопок и меток. Вот пример. Я...

Расположение кнопок в определенном порядке
Здравствуйте, интересует такой вопрос. Пусть у меня есть 15 кнопок и мне нужно их расположить в 3 столбца (по 5 в каждом). Какой мне...

2
17 / 17 / 1
Регистрация: 28.03.2013
Сообщений: 80
28.05.2013, 22:44  [ТС]
Окончательным вариантом был выбран такой:
Создаю панель1 устанавливаю BorderLayout.
Создаю панель2 устанавливаю для нее BoxLayout.Y_AXIS.
Добавляю на панель2 кнопки.
Добавляю панель2 на панель1 с параметром BorderLayout.WEST.

Получилось, то что надо. Теперь задача переписать внешний вид самих кнопок.
Я делаю это так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class MainMenuButton extends JButton{
    private int id;
    private String name;
    private String surname;
    private String secondname;
    private String address;
    private String number;
    MainMenuButton(int id, String name, String surname, String address, String number)
    {
        this.name = name;
        this.surname = surname;
        this.address = address;
        this.name = number;
        this.id = id;   
        setSize(new Dimension(100,100));
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        Rectangle2D rect = new Rectangle2D.Double(0,0,100,100);
        g2.setColor(Color.red);
        g2.drawString("fdsffsdfsfsfsdfsf", 0, 30);
        g2.draw(rect);
        g2.dispose();
    }
    
}
При этом кнопка очень маленького размера где-то 5 на 10 пикселей. Я не могу понять почему она не меняет свой размер?
0
17 / 17 / 1
Регистрация: 28.03.2013
Сообщений: 80
31.05.2013, 18:57  [ТС]
С этим тоже разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2013, 18:57
Помогаю со студенческими работами здесь

Имитация нажатия кнопок клавиатуры нажатиями кнопок в окне
Скажите,как заменить нажатие кнопок клавиатуры на нажатие кнопок в окне?

Имитация нажатия кнопок клавиатуры нажатиями кнопок в окне
Скажите,как заменить нажатие кнопок клавиатуры на нажатие кнопок в окне?

Расположение UI кнопок
Привет! Создаю игруна Android, кнопки "Старт", "Рестарт"... отображаются на смартфоне хорошо. Даже идеально. А вот на стареньком планшете...

Расположение кнопок
Привет! Есть тест, кнопки - варианты ответа, при запуске теста они генерируют своё местоположение. Как это реализовать? Помогите!

Расположение кнопок
Всем привет. Я хочу сделать в своей программе, чтобы расположение кнопки изменялось с размером окна, но без понятия как это сделать. Код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru