Форум программистов, компьютерный форум, киберфорум
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
2 / 2 / 0
Регистрация: 17.08.2017
Сообщений: 118
1

Применение менеджеров размещения компонентов

09.05.2018, 20:48. Показов 768. Ответов 0

Здравствуйте! Подскажите, пожалуйста, можно ли, применяя менеджеры размещения, точно выставлять компоненты интерфейса. Метод setBounds() при использовании менеджеров размещения не работает на компонентах. В результате компоненты ставятся очень грубо, по сути дела где попало. Я стал изучать java недавно и самостоятельно. Какими методами я могу задать размер и положение кнопок выбора, картинки, а также любых других компонентов?
Пробовал применять другие менеджеры размещения, например, GridBagLayout (как я понял это менеджер "ручной" настройки, т. е. самой точной), но с ними не легче. Кстати сказать, узнать как чётко выставлять компоненты при помощи GridBagLayout мне тоже очень интересно.
Ниже приведён один из примеров моих неудачных опытов.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
public class Geo2 extends JFrame {
    private Image img;
 
    public Geo2(String title) {
        super(title);
        //Создаём шрифты
        Font text = new Font("Arial", Font.ITALIC, 17);
        Font textButton = new Font("Arial", Font.ITALIC, 14);
 
        //Создаём менеджеры размещения компонентов
        CardLayout cardLayout = new CardLayout();
        BorderLayout bl = new BorderLayout();
        GridLayout eastLay = new GridLayout(4, 1, 20, 20);
 
        //Создаём панели
        JPanel basis = new JPanel();
        basis.setLayout(cardLayout);
 
        JPanel sloy = new JPanel();
        sloy.setLayout(bl);
 
        JPanel north = new JPanel();
        JPanel center = new JPanel();
        JPanel east = new JPanel(eastLay);
        JPanel south = new JPanel();
 
        //Вопрос
        JLabel ask = new JLabel();
        ask.setFont(text);
        ask.setVisible(true);
        ask.setText("Выберите столицу государства Непал");
 
        //
        JLabel focus = new JLabel("Некоторая надпись", SwingConstants.LEFT);
        focus.setVerticalAlignment(SwingConstants.BOTTOM);
        focus.setHorizontalAlignment(SwingConstants.LEFT);
 
        //Картинка
        JLabel l = new JLabel(new ImageIcon("H://Images/newImage.JPG"), SwingConstants.LEFT);
        l.setVerticalAlignment(SwingConstants.CENTER);
        l.setHorizontalAlignment(SwingConstants.LEFT);
 
        //Кнопки перехода по страницам "Назад" и "Вперёд"
        JButton next = new JButton("Вперёд");
        next.setFont(textButton);
        JButton previous = new JButton("Назад");
        previous.setFont(textButton);
 
        //Кнопки выбора варианта ответа
        JRadioButton one = new JRadioButton("Сува");
        one.setFont(textButton);
        JRadioButton two = new JRadioButton("Нукуалофа");
        two.setFont(textButton);
        JRadioButton three = new JRadioButton("Катманду");
        three.setFont(textButton);
        JRadioButton four = new JRadioButton("Басра");
        four.setFont(textButton);
 
        //"Объединяем" кнопки выбора варианта ответа
        ButtonGroup bg = new ButtonGroup();
        bg.add(one);
        bg.add(two);
        bg.add(three);
        bg.add(four);
 
        //Укладываем все компоненты на панель
        img = getToolkit().getImage("H://Images/newImage.JPG");
        north.add(ask);
 
        center.add(l);
        center.add(focus);
 
        east.add(one);
        east.add(two);
        east.add(three);
        east.add(four);
 
        south.add(previous);
        south.add(next);
 
        //Прочие действия, завершающие создание графического интерфейса
        sloy.add(north, BorderLayout.NORTH);
        sloy.add(east, BorderLayout.CENTER);
        sloy.add(center, BorderLayout.WEST);
        sloy.add(south, BorderLayout.SOUTH);
 
        north.setBackground(Color.ORANGE);
        east.setBackground(Color.GREEN);
        center.setBackground(Color.BLUE);
        south.setBackground(Color.GRAY);
        basis.add(sloy);
        add(basis);
        setSize(700, 700);
        setVisible(true);
    }
 
    public static void main(String[] args){
        JFrame geo = new Geo2("Страноведение");
        //geo.pack();
        //geo.setResizable(false);
        geo.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2018, 20:48
Ответы с готовыми решениями:

Свойство Align: Порядок размещения компонентов с одинаковым выравниванием
Здравствуйте, господа. Периодически возникает эта проблема, второпях решаю ее ручками с отказом...

менеджеров паролей
как создать менеджеров паролей в c++ ??

Выбрать из таблицы всех менеджеров
помогите с данной проблемой

Анекдоты про менеджеров по ПЕРСОНАЛУ
Я сама занимаюсь подбором персонала :) Два менеджера по персоналу в банке - опытный и стажёр -...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2018, 20:48

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Инструкция для контент-менеджеров, Согласны ли вы с ней?
Инструкция для контент-менеджеров 1. Все тексты на сайт вставлять через блокнот (для удаления...

Кластерный анализ. Как правильно распределить менеджеров?
Коллеги, здравствуйте! Точно не знаю в какую ветку писать вопрос, но возможно подскажете. В...

Работа в Европе. Ищу толковых менеджеров в Германии
Здравствуйте, я представляю студию по разработке мобильных приложений и веб-сайтов. Мы планируем...

Как сделать выбор всех менеджеров в отчете?
Есть отчет "3адолженность по контрагентам", в этом отчете можно выбрать отчет по менеджерам! когда...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.