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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> посоветуйте Layout, управление сеткой размещения компонентов 
V
    Опции темы
cube
Дата 17.12.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



у меня есть четыре компонента (JTextField), расположенных в ряд, под которыми вплотную находится таблица JTable. Мне нужно при изменении размеров колонок таблицы менять размеры этих JTextField.

Код

      panel.add(textFields.get(i), new GridBagConstraints(i, 0, 1, 1, x, y, GridBagConstraints.SOUTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));


я могу менять значения занимаемые ячейкой, но они как я выяснил изменяются не пропорционально... если изменять размер самого компонета, то пропорция соблюдается, но компаненты начинают "налазить" друг на друга...

 
Код

   textFields.get(i).setSize(new Dimension(width, 20));



Это сообщение отредактировал(а) cube - 17.12.2007, 12:00

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  line.PNG 3,08 Kb
PM MAIL   Вверх
mbasil
Дата 17.12.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



"Выдерните" исходный код FlowLayout и измените под свои нужды.
То есть так, чтобы пересчитывались автоматически размеры всех
полей-компонентов. Это будет быстрее, чем "барахтаться" с
универсальным Layout'ом. 
PM MAIL   Вверх
dorogoyIV
Дата 18.12.2007, 11:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



так подойдет?
Код

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

class cube extends JFrame
                     implements TableColumnModelListener
{
 JTable table;
 JTextField [] jtf=null;
 TableColumnModel columnmodel;
 JScrollPane jsp=new JScrollPane();

 cube()
 {
  setBounds(100,100,400,300);

  table=new JTable(5, 10);
  jsp.setViewportView(table);
  add(jsp, "Center");

  columnmodel=table.getColumnModel();

  JPanel north=new JPanel(null);
  north.setPreferredSize(new Dimension(getWidth(), 30));

  jtf=new JTextField [columnmodel.getColumnCount()];

  for(int i=0; i < columnmodel.getColumnCount(); i++)
  {
   jtf [i]=new JTextField(""+(i+1));
   north.add(jtf [i]);
  }

  add(north, "North");
  columnmodel.addColumnModelListener(this);
 }

 public void columnMarginChanged(ChangeEvent e)
 {
  int x=0;
  for(int i=0; i < columnmodel.getColumnCount(); i++)
  {
   jtf [i].setBounds(x, 4, columnmodel.getColumn(i).getWidth(), 20);
   x+=columnmodel.getColumn(i).getWidth();
  }
 }
 public void columnSelectionChanged(ListSelectionEvent e){}
 public void columnMoved(TableColumnModelEvent e){}
 public void columnRemoved(TableColumnModelEvent e){}
 public void columnAdded(TableColumnModelEvent e){}

 public static void main(String [] args)
 {
  JFrame f=new cube();
  f.setVisible(true);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}


PM MAIL   Вверх
cube
Дата 19.12.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Огромное спасибо я решил задачу по другому... Я использовал две таблицы... И по другому реализовал весь компонент!

Респект dorogoyIV! Твоя реализация очень реальна!!! Добавьте репутайшен ему - 120 раз прошу уже!!!, наберу 100 постов отдам!
PM MAIL   Вверх
niasilil
Дата 8.1.2008, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



гы, напомнило тут этот ролик про gridback. Возможно вы тоже улыбнетесь

Totally gridbag


--------------------
SCJP 5.0, SCJD
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.1665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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