Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 0
Регистрация: 20.02.2012
Сообщений: 47

Gui troubles

13.05.2013, 23:45. Показов 914. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте пытаюсь настроить размер кнопок для вида.Проблема в том , что настроить это не так просто , как я думал . Использовал все возможные мне способы , но размер кнопки подстраивается только под layout
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            static JFrame Frame = new JFrame ("Frame");
           static JToolBar tb1  = new JToolBar();
    static JButton btn1 = new JButton ("New");
            static Rectangle btnrect = new Rectangle (90,30);
    static Dimension btndim = new Dimension(90, 40);
    public static void prepare(){
        tb1.setBounds(tbrect);
        btndim.setSize(100.0, 50.0);
        btn1.setPreferredSize(btndim);
        btn1.setMinimumSize(btndim);
        btn1.setBounds(0, 0, 100, 50);
        btn1.setBounds(btnrect);
        tb1.add(btn1);
        Frame.add(tb1);
        Frame.setSize(800, 500);
        Frame.setResizable(false);
        Frame.setVisible(true);
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.05.2013, 23:45
Ответы с готовыми решениями:

LWJGL+ GUI - Выход из рендерного цикла для работы в GUI без потери окна
Всем привет! Учусь использовать OpenGL в Java. И у меня возникла небольшая проблемка, окно LWJGL запускается с гуи, и если уже...

linker troubles
Привет всем. Поделитесь своими мыслями по следующему поводу: В проекте есть несколько сишников, к каждому свой заголовочный файл....

HSB project troubles
Всем привет! Заранее выражаю благодарность всем, кто поможет! Теперь, собственно, проблема: нужно научиться преобразовывать...

8
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.05.2013, 01:50
сделайте null лейаут и вручную поставьте размеры
Java
1
2
getContentPane().setLayout(null);        
setBounds(new Rectangle(new Dimension(500, 600)));
но это хреновый стиль, лучше сделать на лейаутах динамически изменяемый размер
1
4 / 4 / 0
Регистрация: 20.02.2012
Сообщений: 47
14.05.2013, 02:10  [ТС]
Спасибо вам .
P.S.
Но если этот стиль хреновый , то каким образом мне добиться желаемого результата ровным стилем.
Понимаете ,я хочу, что бы всё было просто и понятно . Задать кнопкам размер , дабы они были одинаковы, тк не часто встреишь программу , в котрой каждой кнопкее соответсвтует размер layout'а.
Если взглянуть на это всё со стороны :
может у меня ошибка какая-то в самом эклипсе ?
как делают нормальные люди , котрые пишут рабочие программы (врядли они извращаются таким образом)?
есьт ли у вас какие-то соображения почему у меня всё не так круто , как могло бы быть ?)
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.05.2013, 03:03
Цитата Сообщение от ihpled Посмотреть сообщение
то каким образом мне добиться желаемого результата ровным стилем.
почитайте http://www.ozon.ru/context/detail/id/2149296/
в книгах всегда больше чем в кратких советах
5 глава вам поможет
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
14.05.2013, 11:58
Цитата Сообщение от ihpled Посмотреть сообщение
есьт ли у вас какие-то соображения почему у меня всё не так круто , как могло бы быть ?)
Есть. Вы не знаете, что такое layout-ы и не умеете их применять.

1
4 / 4 / 0
Регистрация: 20.02.2012
Сообщений: 47
14.05.2013, 19:56  [ТС]
Я думал ,что о них кроме того ,что они layout-ы знать и нечего . А оказывается это не просто свойство .

Добавлено через 3 часа 13 минут
Цитата Сообщение от Skipy Посмотреть сообщение
Есть. Вы не знаете, что такое layout-ы и не умеете их применять.
Понимаете , ничего нового кроме того , что вы создали потомка JFrame я в вашем примере не увидел . Я использовал setBounds . но ничего сделать с размером кнопки не вышло .
единственное новое - setLayout(null) как мне уже посоветовали .
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
14.05.2013, 21:07
Цитата Сообщение от ihpled Посмотреть сообщение
Я использовал setBounds . но ничего сделать с размером кнопки не вышло .
фишка в том что размерами занимается лейаут, а не человек, правильно указав параметры лейаута вы получаете
автоматическое изменение размеров под разные разрешения экранов.
если же вы вручную сделаете у себя дома на буке приемлемый размер, то у препода на full-hd мониторе этак кнопка будет
очень маленько, что согласитесь не есть хорошо для UI
(об этом в 5 главе книжки Портянкина более подробно)
В статье Skipy есть много полезного, но вы пока ищете не полезное, а как установить размеры, то есть копаете не туда
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
15.05.2013, 13:42
Цитата Сообщение от ihpled Посмотреть сообщение
Понимаете , ничего нового кроме того , что вы создали потомка JFrame я в вашем примере не увидел . Я использовал setBounds . но ничего сделать с размером кнопки не вышло .
Ну давайте посмотрим, чего именно Вы не увидели.

взаимное расположение компонентов – это еще не все. Для их реального позиционирования в контейнере нужен какой-то механизм определения размеров компонент в каждом конкретном случае. Для этого были введены такие понятия как предпочтительный размер (preferredSize) и минимальный размер (minimumSize). Эти параметры можно получить от каждой компоненты – у класса java.awt.Component есть соответствующие методы, – и менеджеры раскладки полагаются именно на них.
Из этого фрагмента вообще-то можно сделать вывод, что setBounds не даст ожидаемого эффекта.

BorderLayout является одним из наиболее удобных и часто используемых менеджеров раскладки. Именно этот менеджер установлен по умолчанию у панели содержимого (content pane) javax.swing.JFrame
Из этого фрагмента можно сделать вывод о том, какой менеджер стоит по умолчанию у Вашего JFrame

Как осуществляется добавление компоненты в контейнер. Если использовать просто метод add(Component) – компонента добавится без указания положения и окажется в центре.
Поскольку Вы используете именно метод add без параметров - компонента оказывается в центре.

И последняя цитата:

Центральной компоненте достается то, что осталось в середине – по высоте она такая же, как боковые, по ширине – ширина контейнера минус ширины боковых компонент минус горизонтальные зазоры. Предпочтительные размеры при этом во внимание не принимаются.
Соответственно, что бы Вы ни делали - JToolBar расположится по центру и растянется на всё окно. А у JToolBar установлен BoxLayout, который вещь в себе и достаточно странно отображает компоненты. Потому кнопка и остается маленького размера - Вы выполнили не все шаманские пляски с бубном.
1
4 / 4 / 0
Регистрация: 20.02.2012
Сообщений: 47
16.05.2013, 00:06  [ТС]
Спасибо,mutagen . Читаю 5ю главу Портянкина - то ,что мне нужно .
Спасибо,Skipy. Я понял,что мои танцы не помогли и ,что ваша инфа покаместь не для моего понимания. когда прочитаю Портянкина и Шилда воспользуюсь вашими записками,если вы не против .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2013, 00:06
Помогаю со студенческими работами здесь

C \Sun OS \ troubles with linker
Есть простейший TCP\IP клиент-сервер. Два исходника + makefile. Проблема: при запуске make выдает следующую ошибку: Undefined symbol...

LocationManager network_provider troubles
Добрый день, Написал сервис для считывания gps-координат. С GPS_PROVIDER проблем нет, все работает. Но если попытаться заменить на...

ViewModel Troubles in database request
Использую подход Code First с Entity Есть классы Post, Tag, TagMap public class Post { public int PostId { get;...

Troubles with mysql install on Centos 7
I tried to install Percona, MariaDB and mysql. Now I try to install mysql: yum -y install mysql mysql-server Log: Loaded plugins:...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru