powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как из модели таблицы менять высоту строк?
4 сообщений из 4, страница 1 из 1
Как из модели таблицы менять высоту строк?
    #34261897
diablero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведите пример если можно, потому что метод tableChanged(TableModelEvent e) вообще не срабатывает
...
Рейтинг: 0 / 0
Как из модели таблицы менять высоту строк?
    #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
Как из модели таблицы менять высоту строк?
    #34262974
diablero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Че-то это не про высоту строк...
Мне нужно менять высоту строк из модели под мультилайновые ячейки
...
Рейтинг: 0 / 0
Как из модели таблицы менять высоту строк?
    #34263084
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, но похоже только через обращение в модели к самой таблице.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как из модели таблицы менять высоту строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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