Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не меняется размер формы (swing), JFrame 
:(
    Опции темы
Allexm
  Дата 24.10.2010, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.10.2010

Репутация: нет
Всего: нет



Недавно начал изучать Java. Попробовал поиграться с gui-интерфейсом, да размер формы меняться не хочет. Ни setSize(), ни setBounds() его не берёт. Location меняется, а size -- нет. Я не знаю, быть может его как-то перерисовать нужно после изменений. Помогите, знающие люди.
Код

import java.awt.*;
import javax.swing.*;        

public class HelloWorldSwing {
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("Hello World Swing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setBounds(100, 100, 500, 500);
        frame.setSize(500, 500);

        //Add the ubiquitous "Hello World" label.
        JLabel label = new JLabel("Hello World!");
        frame.getContentPane().add(label);

        //Add the new button.
        JButton button = new JButton("Test button");
        frame.getContentPane().add(button);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

OS: Ubuntu 10.10
Java: java 1.6.0_20; javac 1.6.0_20
Editor: gedit

PM MAIL   Вверх
mgarin
Дата 24.10.2010, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 19.8.2009
Где: Санкт-Петербург

Репутация: 2
Всего: 3



Советую почитать, скажем, вот этот источник:
http://download.oracle.com/javase/tutorial...out/visual.html

Вполне ясно и с кратинками smile

В целом - вы пытаетесь статично задать размеры компонентов,
а нужно пользоваться Layout Manager'ами.

Они позволяют как-раз таки размещать компоненты там где надо и как надо.

P.S. А чтобы работал ваш пример - вы должны использовать null layout, т.е. в вашем примере:
Код
        frame.getContentPane().setLayout(null);

PM MAIL WWW ICQ   Вверх
Allexm
Дата 24.10.2010, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.10.2010

Репутация: нет
Всего: нет



mgarin, спасибо.
PM MAIL   Вверх
Connie
Дата 24.10.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 8
Всего: 9



pack() вызываемый в конце "упаковывает" (странно, что название что то напоминает) форму, т.е. берет размеры preffered из размеров компонентов и приводит размер формы, что бы она ему соответствовала, соответственно все предыдущие попытки изменить размер формы сбрасываются.

Код

//Display the window.
//        frame.pack();
frame.setSize(800,600);//try this and in such order
        frame.setVisible(true);

PM MAIL WWW   Вверх
Allexm
Дата 24.10.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.10.2010

Репутация: нет
Всего: нет



Connie, спасибо. Теперь понятна суть явления.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0764 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.