Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как из модели таблицы менять высоту строк? / 4 сообщений из 4, страница 1 из 1
17.01.2007, 14:46:13
    #34261897
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из модели таблицы менять высоту строк?
Приведите пример если можно, потому что метод tableChanged(TableModelEvent e) вообще не срабатывает
...
Рейтинг: 0 / 0
17.01.2007, 16:08:51
    #34262207
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из модели таблицы менять высоту строк?
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
 public   class  TableColumnResizer  extends  MouseInputAdapter{ 
     public   static  Cursor resizeCursor = Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR); 
 
     private   int  mouseXOffset; 
     private  Cursor otherCursor = resizeCursor; 
 
     private  JTable table; 
 
     public  TableColumnResizer(JTable table){ 
         this .table = table; 
        table.addMouseListener( this ); 
        table.addMouseMotionListener( this ); 
    } 
 
     private   boolean  canResize(TableColumn column){ 
         return  column !=  null  
                && table.getTableHeader().getResizingAllowed() 
                && column.getResizable(); 
    } 
 
     private  TableColumn getResizingColumn(Point p){ 
         return  getResizingColumn(p, table.columnAtPoint(p)); 
    } 
 
     private  TableColumn getResizingColumn(Point p,  int  column){ 
         if (column == - 1 ){ 
             return   null ; 
        } 
         int  row = table.rowAtPoint(p); 
         if (row==- 1 ) 
             return   null ; 
        Rectangle r = table.getCellRect(row, column, true); 
        r.grow( - 3 ,  0 ); 
         if (r.contains(p)) 
             return   null ; 
 
         int  midPoint = r.x + r.width /  2 ; 
         int  columnIndex; 
         if (table.getTableHeader().getComponentOrientation().isLeftToRight()) 
            columnIndex = (p.x < midPoint) ? column -  1  : column; 
         else  
            columnIndex = (p.x < midPoint) ? column : column -  1 ; 
 
         if (columnIndex == - 1 ) 
             return   null ; 
         return  table.getTableHeader().getColumnModel().getColumn(columnIndex); 
    } 
 
     public   void  mousePressed(MouseEvent e){ 
        table.getTableHeader().setDraggedColumn( null ); 
        table.getTableHeader().setResizingColumn( null ); 
        table.getTableHeader().setDraggedDistance( 0 ); 
 
        Point p = e.getPoint(); 
 
                int  index = table.columnAtPoint(p); 
         if (index==- 1 ) 
             return ; 
 
               TableColumn resizingColumn = getResizingColumn(p, index); 
         if (!canResize(resizingColumn)) 
             return ; 
 
        table.getTableHeader().setResizingColumn(resizingColumn); 
         if (table.getTableHeader().getComponentOrientation().isLeftToRight()) 
            mouseXOffset = p.x - resizingColumn.getWidth(); 
         else  
            mouseXOffset = p.x + resizingColumn.getWidth(); 
    } 
 
     private   void  swapCursor(){ 
        Cursor tmp = table.getCursor(); 
        table.setCursor(otherCursor); 
        otherCursor = tmp; 
    } 
 
     public   void  mouseMoved(MouseEvent e){ 
         if (canResize(getResizingColumn(e.getPoint())) 
           != (table.getCursor() == resizeCursor)){ 
            swapCursor(); 
        } 
    } 
 
     public   void  mouseDragged(MouseEvent e){ 
         int  mouseX = e.getX(); 
 
        TableColumn resizingColumn = table.getTableHeader().getResizingColumn(); 
 
         boolean  headerLeftToRight = 
                table.getTableHeader().getComponentOrientation().isLeftToRight(); 
 
         if (resizingColumn !=  null ){ 
             int  oldWidth = resizingColumn.getWidth(); 
             int  newWidth; 
             if (headerLeftToRight){ 
                newWidth = mouseX - mouseXOffset; 
            }  else { 
                newWidth = mouseXOffset - mouseX; 
            } 
            resizingColumn.setWidth(newWidth); 
 
            Container container; 
             if ((table.getTableHeader().getParent() ==  null ) 
               || ((container = table.getTableHeader().getParent().getParent()) ==  null ) 
                                || !(container  instanceof  JScrollPane)){ 
                 return ; 
            } 
 
             if (!container.getComponentOrientation().isLeftToRight() 
               && !headerLeftToRight){ 
                 if (table !=  null ){ 
                    JViewport viewport = ((JScrollPane)container).getViewport(); 
                     int  viewportWidth = viewport.getWidth(); 
                     int  diff = newWidth - oldWidth; 
                     int  newHeaderWidth = table.getWidth() + diff; 
 
                                      Dimension tableSize = table.getSize(); 
                    tableSize.width += diff; 
                    table.setSize(tableSize); 
 
                                     if ((newHeaderWidth >= viewportWidth) 
                       && (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)){ 
                        Point p = viewport.getViewPosition(); 
                        p.x = 
                                Math.max( 0 , Math.min(newHeaderWidth - viewportWidth, p.x + diff)); 
                        viewport.setViewPosition(p); 
 
                                              mouseXOffset += diff; 
                    } 
                } 
            } 
        } 
    } 
 
     public   void  mouseReleased(MouseEvent e){ 
        table.getTableHeader().setResizingColumn( null ); 
        table.getTableHeader().setDraggedColumn( null ); 
    } 
} 
а потом делаешь так для своей ДЖИТеэйбл:
Код: plaintext
  new  TableColumnResizer(МайДЖИТеэйбл);
...
Рейтинг: 0 / 0
17.01.2007, 20:04:53
    #34262974
diablero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из модели таблицы менять высоту строк?
Че-то это не про высоту строк...
Мне нужно менять высоту строк из модели под мультилайновые ячейки
...
Рейтинг: 0 / 0
17.01.2007, 21:34:02
    #34263084
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из модели таблицы менять высоту строк?
Не уверен, но похоже только через обращение в модели к самой таблице.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как из модели таблицы менять высоту строк? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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