Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable - какой - то глюк? / 20 сообщений из 20, страница 1 из 1
01.02.2006, 11:57
    #33515494
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Есть табличка - JTable.

Мне нужен, чтобы был горизонтальный и вертикальный скроллинг этой таблички. Для этого есть такой метод:

Код: plaintext
1.
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 

Но когда я прокручиваю табличку по горизонтали, шапка смазывается. Что это может быть?

Кусок экрана во вложенном файле:
...
Рейтинг: 0 / 0
01.02.2006, 12:20
    #33515578
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Если добавить

Код: plaintext
1.
2.
 
table.setOpaque(false);

то заголовок, который идет после вертикальной прокрутки, затирается.?!
...
Рейтинг: 0 / 0
01.02.2006, 14:30
    #33516177
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Найдется смелый ченить ответить?

Я уже по-всякому попробывала. Не пойму как этого можно избежать...
...
Рейтинг: 0 / 0
01.02.2006, 14:46
    #33516234
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Нестандартный баг какой-то. Ни разу с таким не сталкивался. Может все дело в видедрайвере? Можно попросить рабочий кусок кода, где этот глюк проявляется?
...
Рейтинг: 0 / 0
01.02.2006, 14:58
    #33516279
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Кувалдин РоманНестандартный баг какой-то. Ни разу с таким не сталкивался. Может все дело в видедрайвере? Можно попросить рабочий кусок кода, где этот глюк проявляется?

Я пробывала на стандартных примерах, которые встречаются в интернете , там такого глюка нет. Значит все дело в моей проге.

Кусок кода большой , попробую выложить как только подготовлю его...
...
Рейтинг: 0 / 0
01.02.2006, 15:02
    #33516299
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Все, определила от чего этот глюк :

Код: plaintext
1.
2.
3.
JTableHeader header = table.getTableHeader();
header.setPreferredSize( new  Dimension ( 85 , 65 ));


Как же выставить высоту шапки ?! Все ж сплющивается и заголовка не видно?
...
Рейтинг: 0 / 0
01.02.2006, 16:13
    #33516637
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
А у тебя JTable в JScrollPane?
...
Рейтинг: 0 / 0
01.02.2006, 16:42
    #33516747
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
ExppА у тебя JTable в JScrollPane?

Да...
...
Рейтинг: 0 / 0
01.02.2006, 17:23
    #33516891
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Решилось все с помощью вот такого класса:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 public   class  MultiLineHeaderRenderer  extends  JList  implements  TableCellRenderer {
   public  MultiLineHeaderRenderer() {
    setOpaque(true);
    setForeground(UIManager.getColor("TableHeader.foreground"));
    setBackground(UIManager.getColor("TableHeader.background"));
    setBorder(UIManager.getBorder("TableHeader.cellBorder"));

    ListCellRenderer renderer = getCellRenderer();
    ((JLabel)renderer).setHorizontalAlignment(JLabel.CENTER);
    ((JLabel)renderer).setVerticalTextPosition(JLabel.CENTER);
    setCellRenderer(renderer);
  }

   public  Component getTableCellRendererComponent(JTable table, Object value,
                    boolean  isSelected,  boolean  hasFocus,  int  row,  int  column) {
    setFont(table.getFont());
    String str = (value ==  null ) ? "" : value.toString();
    BufferedReader br =  new  BufferedReader( new  StringReader(str));
    String line;
    Vector v =  new  Vector();
     try  {
       while  ((line = br.readLine()) !=  null ) {
        v.addElement(line);
      }
    }  catch  (IOException ex) {
      ex.printStackTrace();
    }
    setListData(v);
     return   this ;
  }
}


А в том месте, где формируется табличка:

Код: plaintext
1.
2.
3.
4.
5.
        MultiLineHeaderRenderer renderer =  new  MultiLineHeaderRenderer();
        Enumeration enum = table.getColumnModel().getColumns();
         while  (enum.hasMoreElements()) {
          ((TableColumn)enum.nextElement()).setHeaderRenderer(renderer);
        }
...
Рейтинг: 0 / 0
02.02.2006, 00:18
    #33517686
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Начнём по порядку setAutoResize - это не скроллинг
а изменение ширины столбцов.
Если тебе нужно несколько строк в заголовке
проще использовать html ,а именно
в column.setHeaderValue("<html>строк<br>до<br>фига<br>в<br>заголовке</html>");
при первом появлении таблицы с таким заголовком заметишь
загрузку html renderer'а
...
Рейтинг: 0 / 0
02.02.2006, 13:18
    #33518779
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
ExppНачнём по порядку setAutoResize - это не скроллинг
а изменение ширины столбцов.
Если тебе нужно несколько строк в заголовке
проще использовать html ,а именно
в column.setHeaderValue("<html>строк<br>до<br>фига<br>в<br>заголовке</html>");
при первом появлении таблицы с таким заголовком заметишь
загрузку html renderer'а

1. А каким образом делается в JTable скроллинг - вертикальный и горизонтальный?

2. html-заголовок у меня был раньшьше , правда не через column.setHeaderValue, а при построении таблицы, я создаю массив заголовков. Но потом стала проблема увеличитить высоту шапки.
...
Рейтинг: 0 / 0
02.02.2006, 17:19
    #33519800
ppex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
в JTable скроллинг - вертикальный и горизонтальный
JTable в JScrollPane JTable сообщает ему PreferredSize и PreferredScrollableViewportSize, последний становится PreferredSize у
JScrollPane т.е. она говорит это Layout'у , а он ставит её размер
и если устанавливаемый размер панели меньше того, что
кохает таблица --- хлабысь и скроллер появился

шапка у табе не увеличивается изза того, что
BasicTableHeaderUI.getHeaderHeight() устанавливает
высоку шапки по высоте первого заголовка -- поэтому
или подключай свой UI который учтёт все колонки, или
поставь кохаемый заголовком размер вручную (setPrefSize)
...
Рейтинг: 0 / 0
02.02.2006, 17:24
    #33519823
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
ppex

Спасибо за подробный ответ.
...
Рейтинг: 0 / 0
02.02.2006, 17:29
    #33519842
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
ppex в JTable скроллинг - вертикальный и горизонтальный
JTable в JScrollPane JTable сообщает ему PreferredSize и PreferredScrollableViewportSize, последний становится PreferredSize у
JScrollPane т.е. она говорит это Layout'у , а он ставит её размер
и если устанавливаемый размер панели меньше того, что
кохает таблица --- хлабысь и скроллер появился

шапка у табе не увеличивается изза того, что
BasicTableHeaderUI.getHeaderHeight() устанавливает
высоку шапки по высоте первого заголовка -- поэтому
или подключай свой UI который учтёт все колонки, или
поставь кохаемый заголовком размер вручную (setPrefSize)

Буду признательна, если ты приведешь косочек кода, как это хлабысь делается.

А также с шапкой.
...
Рейтинг: 0 / 0
02.02.2006, 20:44
    #33520316
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
2 GlukOza
недавно ты дала ссылочку на сайт с примерами, очень классный сайт ты так и сказала,так вот, там есть пример поиска по таблице,т.е. нажимаем cntr+i и в рез-те высвечивается строчка в которой вводится то что мы хотим найти,проблема в том, что оно ищет только в одном столбце, не делала ли ты случайно поиск по всем столбцам,если да,то как?
...
Рейтинг: 0 / 0
03.02.2006, 00:33
    #33520581
ppex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  protected  JPanel createPanel() {
        JPanel pn =  new  JPanel();
        pn.setLayout( new  BorderLayout());
        pn.add(createTableInScrolPane(), BorderLayout.CENTER);
        table.getSelectionModel().addListSelectionListener(
                 new  SaveChangesListener());
         return  pn;
    }

     protected  JScrollPane createTableInScrolPane()
    {   
        table = createTable();
        JScrollPane scroll =  new  JScrollPane(table);
         return  scroll;
    }

а с шапкой я борюсь тремя классами, которые позволяют группировать колонки.
эти три класса написали японцы и распространили по всему нету, я их для
ждк 1.5. подкручивал , уже заслал на мыло из профиля ()
...
Рейтинг: 0 / 0
03.02.2006, 10:06
    #33520979
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
ppex
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  protected  JPanel createPanel() {
        JPanel pn =  new  JPanel();
        pn.setLayout( new  BorderLayout());
        pn.add(createTableInScrolPane(), BorderLayout.CENTER);
        table.getSelectionModel().addListSelectionListener(
                 new  SaveChangesListener());
         return  pn;
    }

     protected  JScrollPane createTableInScrolPane()
    {   
        table = createTable();
        JScrollPane scroll =  new  JScrollPane(table);
         return  scroll;
    }

а с шапкой я борюсь тремя классами, которые позволяют группировать колонки.
эти три класса написали японцы и распространили по всему нету, я их для
ждк 1.5. подкручивал , уже заслал на мыло из профиля ()

Спасибо, большое.
...
Рейтинг: 0 / 0
03.02.2006, 10:18
    #33521021
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
JulT2 GlukOza
недавно ты дала ссылочку на сайт с примерами, очень классный сайт ты так и сказала,так вот, там есть пример поиска по таблице,т.е. нажимаем cntr+i и в рез-те высвечивается строчка в которой вводится то что мы хотим найти,проблема в том, что оно ищет только в одном столбце, не делала ли ты случайно поиск по всем столбцам,если да,то как?

К сожалению не копала в этом направлении.
...
Рейтинг: 0 / 0
03.02.2006, 15:30
    #33522397
usera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
JulT2 GlukOza
недавно ты дала ссылочку на сайт с примерами, очень классный сайт ты так и сказала,так вот, там есть пример поиска по таблице,т.е. нажимаем cntr+i и в рез-те высвечивается строчка в которой вводится то что мы хотим найти,проблема в том, что оно ищет только в одном столбце, не делала ли ты случайно поиск по всем столбцам,если да,то как?
там у автора этой фичи, мистера Кумара, есть исходники - погляди как и что происходит при поиске. думаю можно разобраться и заставить искать там где нужно. хотя сам не пробовал. не нуна было-)
...
Рейтинг: 0 / 0
01.09.2006, 13:03
    #33958262
yelena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable - какой - то глюк?
Подняла тему, чтоб люди велосипед не изобретали

http://forum.java.sun.com/thread.jspa?threadID=327479&messageID=1946084
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable - какой - то глюк? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]