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

Как, используя свинг, представить следующую картинку?

11.03.2020, 13:12. Показов 2170. Ответов 7

Студворк — интернет-сервис помощи студентам
Привет. Как сделать примерно такой интерфейс (как на рисунке) с помощью библиотеки swing?

Пытался использовать BoxLayout и GridBagLayout, но не получается нормальной картинки. Круто, если приведёте пример кода)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2020, 13:12
Ответы с готовыми решениями:

Как получить следующую картинку в модальном окне
На странице 4 картинки по клику открываются в модальном окне. Не получается по клику кнопки "далее" переключить след. картинку. ...

Динамический диапазон данных. Как используя только функции EXCEL решить следующую задачку?
Всем привет! Совсем сломал голову. Помогите решить одну задачку. Как используя только функции EXCEL решить следующую задачку? Есть...

Составьте программу, выводящую на экран следующую картинку
Составьте программу, выводящую на экран следующую картинку: Указание. Используйте сведения из курса математики: координаты (А,B)...

7
2 / 2 / 0
Регистрация: 10.03.2020
Сообщений: 39
11.03.2020, 14:35
Ты можешь использовать panel.setLayot(null), создать еще две панели с GridLayot. На первую из этих двух поместишь левые три объекта, на вторую - правые четыре объекта. Потом с помощью .setBounds() задашь координаты и размер этим двум панелям, посадишь их на свою большую панель и нижний TextArea посадишь на эту же панель с помощью .setBounds() выставив координаты.
Ну или вообще все можно через .setBounds(), но это возможно будет дольше и сложнее выровнять

Добавлено через 6 минут
Даже наверно лучше не GridLayot для двух новых панелей, а FlowLayot.
1
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
13.03.2020, 11:58
Лучший ответ Сообщение было отмечено XSasha как решение

Решение

XSasha,

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
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;
 
public class Window extends JFrame {
    private static final long serialVersionUID = 1L;
    private Border border = BorderFactory.createEmptyBorder(15, 15, 15, 15);
    private JPanel main = new JPanel();
    private JPanel top = new JPanel();
    private JPanel mid = new JPanel();
    private JPanel bot = new JPanel();
    private JTable table1 = new JTable();
    private JTable table2 = new JTable();
    private JScrollPane sp1 = new JScrollPane(this.table1);
    private JScrollPane sp2 = new JScrollPane(this.table2);
    private JTextField textField1 = new JTextField("textField1");
    private JTextField textField2 = new JTextField("textField2");
    private JTextField textField3 = new JTextField("textField3");
    private JTextField textField4 = new JTextField("textField4");
    private JButton button = new JButton("Button");
    private JTextArea textArea = new JTextArea();
    private JScrollPane sp3 = new JScrollPane(this.textArea);
 
    public Window() {
        super.setTitle("Window");
        this.setSize(800, 600);
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setLocationRelativeTo(null);
 
        this.top.setPreferredSize(new Dimension(600, 200));
        this.top.setLayout(new GridLayout(1, 2, 25, 25));
        this.top.add(this.sp1);
        this.top.add(this.sp2);
 
        this.mid.setLayout(new GridLayout(3, 2, 25, 10));
        this.mid.add(this.textField1);
        this.mid.add(this.textField2);
        this.mid.add(this.button);
        this.mid.add(this.textField3);
        this.mid.add(new JLabel(""));
        this.mid.add(this.textField4);
 
        this.textArea.setPreferredSize(new Dimension(600, 200));
        this.bot.setLayout(new GridLayout(1, 1));
        this.bot.add(this.sp3);
 
        this.main.setBorder(this.border);
        this.getContentPane().add(this.main);
 
        BorderLayout borderLayout = new BorderLayout(15, 15);
        this.main.setLayout(borderLayout);
        this.main.add(this.top, BorderLayout.PAGE_START);
        this.main.add(this.mid, BorderLayout.CENTER);
        this.main.add(this.bot, BorderLayout.SOUTH);
 
        this.setVisible(true);
    }
 
    public static void main(final String[] args) {
        new Window();
    }
}
1
1 / 1 / 1
Регистрация: 19.09.2018
Сообщений: 59
13.03.2020, 20:52  [ТС]
Kukstyler, спасибо, выручили! И у меня пару вопросов есть:
1) Перерыл кучу сайтов, нигде нормальной информации про layout-ы нет. Как так?
2) Также нигде не нашёл использования Swing UI Designer (Gui Form) для интерфейса программы. Вроде бы удобная штука, не надо сильно заморачиваться по поводу всех этих layout-ов, почему ею не пользуются или я что-то не так понял?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.03.2020, 21:31
Цитата Сообщение от XSasha Посмотреть сообщение
1) Перерыл кучу сайтов, нигде нормальной информации про layout-ы нет. Как так
в любой книжке, либо в документации
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
14.03.2020, 14:08
Цитата Сообщение от XSasha Посмотреть сообщение
информации про layout-ы
https://docs.oracle.com/javase... isual.html

Цитата Сообщение от XSasha Посмотреть сообщение
Swing UI Designer (Gui Form)
https://www.vogella.com/tutori... ticle.html

Правда код генерируемый WindowBuilder-ом далеко не идеальный.
0
1 / 1 / 1
Регистрация: 19.09.2018
Сообщений: 59
14.03.2020, 16:59  [ТС]
Kukstyler, как я понял, рекомендуется интерфейс писать руками, чем пользоваться редакторами. Но почему?
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
14.03.2020, 17:47
XSasha, главная проблема в том, что при переделывании интерфейса, графический десинджер переплетает код, оставляет мусор и т.д.

Т.к. код можно разбить на отдельные классы (и файлы), громоздкости в коде графики можно избежать. А в таком случае, создание GUI конечно замедляется, но лёгкость в поддержке кода компенсирует.

Hа мой (и не только) взгляд, лёгкость в поддержке кода важнее.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2020, 17:47
Помогаю со студенческими работами здесь

Как вывести картинку используя imageJpeg в середине скрипта?
Всем привет! Сделал счетчик который выводит поверх картинки количество почещений. теперь вывожу картинку со счетчиком: ...

Как разделить картинку на 6 частей в Delphi 7 используя TRect?
Я знаю как с помощью Rect разделить картинку на 4 части, но как дело обстоит с 6 частями я не понимаю...(

Как вытащить картинку в компонент Image используя короткий путь
Подскажите как вытащить картинку в компонент Image используя короткий путь? Если папка с картинками лежит в папке с самой программой. А...

Как ПРАВИЛЬНО сохранить, а потом считать картинку из БД используя Spring?
Итак возник вопрос как сохранить и считать картинку в БД используя Модель. Раньше делал просто ссылка на картинку в БД, сама картинка...

Как можно вывести картинку из ресурсов на форму, не используя PictureBox?
Итак, здравствуйте. Я совсем недавно начал осваивать C#, поэтому хотелось бы попросить изъясняться более понятно Вопрос заключается в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru