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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> именование столбцов таблицы 
V
    Опции темы
man_without_face
Дата 18.7.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



есть ситуация. некоторые данные берутся из файла, затем они парсятся и создаётся таблица (JTable). Задача состоит в том, чтобы предоставить пользователь некий GUI, для удобства ввода имён колонок. Вопрос в том, как это просто и удобно сделать? 

Выводить n-раз пользователю "Введите название для колонки n:" - думаю напряжно. Тем более нельзя будет перемещаться между колонками. 

Выводить пользователю n штук JTextField - тоже не хорошо, учитывая то, что колонок может быть 100 штук, тогда как их расположить на фрейме.

Может кто-то может подсказать способ, как удобнее всего предоставить пользователю иненование колонок?
PM MAIL   Вверх
AntonSaburov
Дата 18.7.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



По-моему лучше всего сделать сначала имена по умолчанию, и дать возможность пользователю исправлять конкретную колонку.
PM MAIL WWW ICQ   Вверх
man_without_face
Дата 18.7.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нет, так не хорошо. Причины две.

1. Заказчик так не хочет.
2. Представьте если колонок 100. Тогда ему надо будет прокручивать таблицу, искать нужный столбец и его править.
PM MAIL   Вверх
dorogoyIV
Дата 18.7.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(man_without_face @  18.7.2008,  15:25 Найти цитируемый пост)
предоставить пользователь некий GUI, для удобства ввода имён колонок

могу предложить такое извращение  smile 
работает по клику мыши и нажатию клавиши Enter
Код

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

public class RenameTableHeader extends JFrame
{
 int num = 0;

 public RenameTableHeader()
 {
  Object [][] rowData = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
  Object [] columnNames = {"one", "two", "three"};

  final JLayeredPane lp = getLayeredPane();
  final JTextField jtf = new JTextField();

  JTable table = new JTable(rowData, columnNames);
  add(new JScrollPane(table));

  final JTableHeader header = table.getTableHeader();

  header.addMouseListener(new MouseAdapter()
  {
   public void mouseClicked(MouseEvent e)
   {
    Point point = e.getPoint();
    num = header.columnAtPoint(point);
    Rectangle r = header.getHeaderRect(num);

    jtf.setBounds(r);
    jtf.setText(header.getColumnModel().getColumn(num).getHeaderValue() + "");
    lp.add(jtf, 0);
   }
  });

  jtf.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    header.getColumnModel().getColumn(num).setHeaderValue(jtf.getText());
    lp.remove(jtf);
    repaint();
   }
  });
 }

 public static void main(String [] args)
 {
  JFrame f = new RenameTableHeader();
  f.setBounds(100, 100, 400, 300);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}

PM MAIL   Вверх
man_without_face
Дата 18.7.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не. пользователь замучается крутить скролом, называя имена колонок. Хммм.... Может сделать таблицу с одной колонкой, в которой юзер укажет имена всех нужных ему колонок? Прокручивать тоже будет, понятное дело, но думаю удобнее. что скажете? 
PM MAIL   Вверх
dorogoyIV
Дата 19.7.2008, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(man_without_face @  18.7.2008,  18:17 Найти цитируемый пост)
что скажете? 

по моему привычнее - куда тычешь, то и редактировать

в конце концов для чего таблица?, что бы колонки переименовывать, или ячейки с данными? smile 


Это сообщение отредактировал(а) dorogoyIV - 19.7.2008, 04:40
PM MAIL   Вверх
Mayk
Дата 19.7.2008, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Цитата(man_without_face @  18.7.2008,  22:17 Найти цитируемый пост)
не. пользователь замучается крутить скролом, называя имена колонок. Хммм.... Может сделать таблицу с одной колонкой, в которой юзер укажет имена всех нужных ему колонок? Прокручивать тоже будет, понятное дело, но думаю удобнее. что скажете?  

Имхо можно добавить  колонку с порядковым номером изменяемого названия колонки.  


Цитата(dorogoyIV @  19.7.2008,  08:34 Найти цитируемый пост)

по моему привычнее - куда тычешь, то и редактировать

это хорошо если тебе надо изментиь  1 название из 256. при  смене всез заголвков эта идея неудобварима из за излешнего скролла вправо.


Можно сделать оба варианта.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
dorogoyIV
Дата 19.7.2008, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



хм...
тогда на фрейме надо сделать дополнительную панель(например слева с вертикальным Layout). на этой панели будут отображаться названия колонок. и надо сделать, что бы на этой же панели можно было редактировать эти названия столбцов.
эта панель должна иметь возможность быть скрытой/открытой
ИМХО
PM MAIL   Вверх
man_without_face
Дата 21.7.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



сделал. всем спасибо. 


P.S. тип данных нужен по задаче. 

Это сообщение отредактировал(а) man_without_face - 21.7.2008, 17:00

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  untitled.jpg 59,36 Kb
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.0783 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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