powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable - какой - то глюк?
20 сообщений из 20, страница 1 из 1
JTable - какой - то глюк?
    #33515494
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть табличка - JTable.

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

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

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

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

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

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

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

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

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

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


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

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

Код: 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
JTable - какой - то глюк?
    #33517686
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнём по порядку setAutoResize - это не скроллинг
а изменение ширины столбцов.
Если тебе нужно несколько строк в заголовке
проще использовать html ,а именно
в column.setHeaderValue("<html>строк<br>до<br>фига<br>в<br>заголовке</html>");
при первом появлении таблицы с таким заголовком заметишь
загрузку html renderer'а
...
Рейтинг: 0 / 0
JTable - какой - то глюк?
    #33518779
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExppНачнём по порядку setAutoResize - это не скроллинг
а изменение ширины столбцов.
Если тебе нужно несколько строк в заголовке
проще использовать html ,а именно
в column.setHeaderValue("<html>строк<br>до<br>фига<br>в<br>заголовке</html>");
при первом появлении таблицы с таким заголовком заметишь
загрузку html renderer'а

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

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

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

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

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

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

А также с шапкой.
...
Рейтинг: 0 / 0
JTable - какой - то глюк?
    #33520316
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GlukOza
недавно ты дала ссылочку на сайт с примерами, очень классный сайт ты так и сказала,так вот, там есть пример поиска по таблице,т.е. нажимаем cntr+i и в рез-те высвечивается строчка в которой вводится то что мы хотим найти,проблема в том, что оно ищет только в одном столбце, не делала ли ты случайно поиск по всем столбцам,если да,то как?
...
Рейтинг: 0 / 0
JTable - какой - то глюк?
    #33520581
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
JTable - какой - то глюк?
    #33520979
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
JTable - какой - то глюк?
    #33521021
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT2 GlukOza
недавно ты дала ссылочку на сайт с примерами, очень классный сайт ты так и сказала,так вот, там есть пример поиска по таблице,т.е. нажимаем cntr+i и в рез-те высвечивается строчка в которой вводится то что мы хотим найти,проблема в том, что оно ищет только в одном столбце, не делала ли ты случайно поиск по всем столбцам,если да,то как?

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

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


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