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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятки с JScrollPane при GridBagLayout, Вместотаблицы - маленький квадратик :( 
V
    Опции темы
kaa
Дата 24.8.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем вот код который запихивает элементы на панель:

Код

public MyPanel(Object frameObj)
    {
       //Устанавливаем компоновщик.
        GridBagLayout layout = new GridBagLayout();
        this.setLayout(layout);
        btn = new JButton("Execute query");
        
        constr = new GridBagConstraints();
        constr.fill = GridBagConstraints.NONE;
        constr.gridx = 1;
        constr.gridy = 1;
        constr.gridwidth=1;
        constr.gridwidth=1;
        constr.weightx=100;
        constr.weighty=100;
        this.add(btn, constr);
        btn.addActionListener(new MyAction());
        tbl = new JTable(10,10);
        JScrollPane sp = new JScrollPane(tbl);
        //sp.setSize(300,300);
        constr.gridx = 2;
        constr.gridy = 1;
        constr.gridwidth=10;
        constr.gridheight=10;
        constr.weighty=100;
        constr.weightx=100;
        this.add(sp, constr);
    }


Так у меня вместо таблицы что-такое маленькое-маленькое, квадратненькое-квадратненькое :(
Если таблицу в JScrollPane не помещать, то она отображается нормально. Но так же нельзя - нужно ж чтобы в JSCrollPane  её можно было запихнуть, а то криво как-то.

Может кто сталкивался с такой проблемой?
PM MAIL   Вверх
nornad
Дата 24.8.2007, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Хм... а может не стоит использовать GridBagLayout в случае одного элемента на панели? Зачём такую тяжёлую штуку тащить? В приведённом примере за глаза хватит и стандартного (FlowLayout) менеджера.
И что значит 
Цитата(kaa @  24.8.2007,  03:17 Найти цитируемый пост)
маленькое-маленькое, квадратненькое-квадратненькое

? Квадратным ты ему сам сказал быть:

Цитата(kaa @  24.8.2007,  03:17 Найти цитируемый пост)
        constr.weightx=100;
        constr.weighty=100;

Да и явно не громадное оно при таких ширине и высоте.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
kaa
Дата 25.8.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



nornad, 
Ну на этом примере я просто учусь работать  с GridBagLayout, к тому же как сказано в документации weightx и weighty это что-то связаное с растягиваениеми показывает что нужно растягивать по максимому. Проблема не в том что квадратная, а втом что оооочень маленькая, видно только стрелки для скрола и чуть-чуть белого фона :(
PM MAIL   Вверх
kaa
Дата 25.8.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот, файлик со скриншотом трабла

Присоединённый файл ( Кол-во скачиваний: 21 )
Присоединённый файл  Untitled_1.png 6,53 Kb
PM MAIL   Вверх
w1nd
Дата 25.8.2007, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



kaa, значение weightx и weighty должны быть в диапазоне 0..1
Кроме того, grid для GridBagLayout'а не имеет каких-то предопределённых размеров, и свойство gridwidth не зачем делать таким большим.

Это сообщение отредактировал(а) w1nd - 25.8.2007, 23:21


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
kaa
Дата 26.8.2007, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



w1nd, 
Понял, попробую.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Untitled_1.png 6,53 Kb
PM MAIL   Вверх
nornad
Дата 26.8.2007, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



М-да... что-т я глючить стал чаще обычного. smile

kaa, попробуй явно установить размеры JSCrollPane.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
kaa
Дата 26.8.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



nornad, 

В общем и помогло и нет smile

При первоначальной отрисовке окна. тоесть сразу после запуска - всё такой же баг, но как тока окно раздвигаю в ширину - всё путём .

Еще один скриншотик (здесь окно ширше раздвинуто заметьте)


Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  Untitled_2.png 12,74 Kb
PM MAIL   Вверх
w1nd
Дата 26.8.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Код
import java.awt.*;

import javax.swing.*;
import javax.swing.table.*;

public class GridBagLayoutTest {

    public static void main(String[] args) {
        JButton button = new JButton("Button");    
        DefaultTableModel tableModel = new DefaultTableModel();
        JTable table = new JTable(tableModel);
        JScrollPane tableScrollPane = new JScrollPane(table);
        JFrame frame = new JFrame();

        Container contentPane = frame.getContentPane();
        contentPane.setLayout(
            new GridBagLayout()
        );

        contentPane.add(button, new GridBagConstraints(
            1, 1, 1, 1, 0.5, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0
        ));
        contentPane.add(tableScrollPane, new GridBagConstraints(
            2, 1, 1, 1, 0.5, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0
        ));

        frame.setSize(800, 600);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

}



--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
kaa
Дата 27.8.2007, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



w1nd, 
Спасибо, буду разбираться

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


Опытный
**


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

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



Цитата(w1nd @ 25.8.2007,  23:19)
kaa, значение weightx и weighty должны быть в диапазоне 0..1

Не обязательно. Это просто веса, пропорционально которым распределяется свободное место.


--------------------
user posted image
PM MAIL ICQ   Вверх
w1nd
Дата 28.8.2007, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

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



Цитата(fixxer @  28.8.2007,  13:09 Найти цитируемый пост)
Не обязательно. Это просто веса, пропорционально которым распределяется свободное место.

Да, спасибо за уточнение.


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
kaa
Дата 29.8.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всё, разобрался, требовалось прописать:

Код

constr.fill = GridBagConstraints.BOTH;



Всем спасибо!

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

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

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


 




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


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

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