powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблемка с GUI
9 сообщений из 9, страница 1 из 1
Проблемка с GUI
    #33689266
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше было так:
была панелька,на ней лежит JScrollPane, на JScrollPane лежит JTable,кроме того,на этой панельке еще лежит пару кнопок.
Количество столбцов таблички большое из-за этого все данные получаются сплюснутыми и их плохо видно.
Решила я положить свою панельку на еще один JScrollPane, запускаю программку, и не вижу данных в табличке,почему?внизу в строчке статуса показывает, что найдено 230 строк, но их не видно,помогите справиться с этой проблемой.
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33689299
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте задать фиксированную ширину столбцов в таблице
и сделать Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
и убрать лишнюю JScrollPane
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33689458
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо Вам Елена.Оказывается нужно было поставить getViewport(),а потом add, а у меня getViewport() вообще не стояло.
Скажите, а как сделать так, чтобы колонки были такие же по ширине как и содержимое в них, а то не все видно.
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33689574
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTБольшое спасибо Вам Елена.Оказывается нужно было поставить getViewport(),а потом add, а у меня getViewport() вообще не стояло.
Скажите, а как сделать так, чтобы колонки были такие же по ширине как и содержимое в них, а то не все видно.
Код: plaintext
1.
2.
  public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth ){
           return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
      }
а потом пихай свою ДЖИТэйбл в этот метод
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33689625
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636 JulTБольшое спасибо Вам Елена.Оказывается нужно было поставить getViewport(),а потом add, а у меня getViewport() вообще не стояло.
Скажите, а как сделать так, чтобы колонки были такие же по ширине как и содержимое в них, а то не все видно.
Код: plaintext
1.
2.
  public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth ){
           return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
      }
а потом пихай свою ДЖИТэйбл в этот метод
Спасибо братик
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33690552
jikez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636
Код: plaintext
1.
2.
  public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth ){
           return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
      }
а потом пихай свою ДЖИТэйбл в этот метод

а что это за метод?
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33690628
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой личный
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33690754
jikez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636Мой личный
А посмотреть на него можно?
если так секретно то можно по e-mail
...
Рейтинг: 0 / 0
Проблемка с GUI
    #33690892
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jikez peter6636Мой личный
А посмотреть на него можно?
если так секретно то можно по e-mail
Конечно можно:
Код: 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.
139.
140.
141.
142.
143.
 import  java.awt.Dimension;
 import  java.awt.Font;
 import  java.awt.FontMetrics;
 import  java.awt.Component;
 
 
 import  javax.swing.text.JTextComponent;
 import  javax.swing.SwingUtilities;
 import  javax.swing.JLabel;
 
 import  javax.swing.JTable;
 import  javax.swing.table.JTableHeader;
 import  javax.swing.table.TableColumnModel;
 import  javax.swing.table.TableColumn;
 import  javax.swing.table.TableCellRenderer;
 
 public   class  AutofitTableColumns
{
 
     private   static   final   int  DEFAULT_COLUMN_PADDING =  5 ;
 
     public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth )
    {
         return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
    }

     public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth,  int  columnPadding )
    {
         int  columnCount = aTable.getColumnCount();
         int  currentTableWidth = aTable.getWidth();
         int  tableWidth =  0 ;
 
        Dimension cellSpacing = aTable.getIntercellSpacing();
 
         if  ( columnCount >  0  )  
        { 
             int  columnWidth[] =  new   int  [ columnCount ];
 
             for  (  int  i= 0 ; i<columnCount; i++ )
            {
                columnWidth[i] = getMaxColumnWidth ( aTable, i, true, columnPadding );
 
                tableWidth += columnWidth[i];
            }
 
            tableWidth += ( ( columnCount -  1  ) * cellSpacing.width );
            JTableHeader tableHeader = aTable.getTableHeader();
 
            Dimension headerDim = tableHeader.getPreferredSize();
 
            headerDim.width = tableWidth;
            tableHeader.setPreferredSize ( headerDim );
 
            Dimension interCellSpacing = aTable.getIntercellSpacing();
            Dimension dim =  new  Dimension();
             int  rowHeight = aTable.getRowHeight();
 
             if  ( rowHeight ==  0  )
                 rowHeight =  16 ;    // ширина строчки дэфолтом
 
            dim.height = headerDim.height + ( ( rowHeight + interCellSpacing.height ) * aTable.getRowCount() );
            dim.width = tableWidth;
            TableColumnModel tableColumnModel = aTable.getColumnModel();
            TableColumn tableColumn;
             for  (  int  i= 0 ; i><columnCount; i++ )
            {
                tableColumn = tableColumnModel.getColumn ( i );
                tableColumn.setPreferredWidth ( columnWidth[i] );
            }
            aTable.invalidate();
            aTable.doLayout();
            aTable.repaint();
        }
 
         return  ( tableWidth );
    }
 
     private   static   int  getMaxColumnWidth ( JTable aTable,  int  columnNo,
                                            boolean  includeColumnHeaderWidth,
                                            int  columnPadding )
    {
        TableColumn column = aTable.getColumnModel().getColumn ( columnNo );
        Component comp =  null ;
         int  maxWidth =  0 ;
         if  ( includeColumnHeaderWidth )
        {
            TableCellRenderer headerRenderer = column.getHeaderRenderer();
             if  ( headerRenderer !=  null  )
            {
                comp = headerRenderer.getTableCellRendererComponent ( aTable, column.getHeaderValue(), false, false,  0 , columnNo );
                 if  ( comp  instanceof  JTextComponent )
                {
                    JTextComponent jtextComp = (JTextComponent)comp;
                    String text = jtextComp.getText();
                    Font font = jtextComp.getFont();
                    FontMetrics fontMetrics = jtextComp.getFontMetrics ( font );
 
                    maxWidth = SwingUtilities.computeStringWidth ( fontMetrics, text );
                }
                 else 
                {
                    maxWidth = comp.getPreferredSize().width;
                }
            }
             else 
            {
                 try 
                {
                    String headerText = (String)column.getHeaderValue();
                    JLabel defaultLabel =  new  JLabel ( headerText ); 
                    Font font = defaultLabel.getFont();
                    FontMetrics fontMetrics = defaultLabel.getFontMetrics ( font );
       maxWidth = SwingUtilities.computeStringWidth ( fontMetrics, headerText );
                }
                 catch  ( ClassCastException ce )
                {
                            maxWidth =  0 ;
                }
            }
        }
        TableCellRenderer tableCellRenderer;
         int  cellWidth   =  0 ;
         for  ( int  i =  0 ; i >< aTable.getRowCount(); i++)
        {
            tableCellRenderer = aTable.getCellRenderer ( i, columnNo );
            comp = tableCellRenderer.getTableCellRendererComponent ( aTable, aTable.getValueAt ( i, columnNo ), false, false, i, columnNo );
             if  ( comp  instanceof  JTextComponent )
            {
                JTextComponent jtextComp = (JTextComponent)comp;
                String text = jtextComp.getText();
                Font font = jtextComp.getFont();
                FontMetrics fontMetrics = jtextComp.getFontMetrics ( font );
                 int  textWidth = SwingUtilities.computeStringWidth ( fontMetrics, text );
                maxWidth = Math.max ( maxWidth, textWidth );
            }
             else 
            {
                cellWidth = comp.getPreferredSize().width; 
                maxWidth = Math.max ( maxWidth, cellWidth );
            }
        }
         return  ( maxWidth + columnPadding );
    }
}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблемка с GUI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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