Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблемка с GUI / 9 сообщений из 9, страница 1 из 1
25.04.2006, 16:10
    #33689266
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
Раньше было так:
была панелька,на ней лежит JScrollPane, на JScrollPane лежит JTable,кроме того,на этой панельке еще лежит пару кнопок.
Количество столбцов таблички большое из-за этого все данные получаются сплюснутыми и их плохо видно.
Решила я положить свою панельку на еще один JScrollPane, запускаю программку, и не вижу данных в табличке,почему?внизу в строчке статуса показывает, что найдено 230 строк, но их не видно,помогите справиться с этой проблемой.
...
Рейтинг: 0 / 0
25.04.2006, 16:17
    #33689299
yelena
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
Попробуйте задать фиксированную ширину столбцов в таблице
и сделать Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
и убрать лишнюю JScrollPane
...
Рейтинг: 0 / 0
25.04.2006, 16:50
    #33689458
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
Большое спасибо Вам Елена.Оказывается нужно было поставить getViewport(),а потом add, а у меня getViewport() вообще не стояло.
Скажите, а как сделать так, чтобы колонки были такие же по ширине как и содержимое в них, а то не все видно.
...
Рейтинг: 0 / 0
25.04.2006, 17:15
    #33689574
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
JulTБольшое спасибо Вам Елена.Оказывается нужно было поставить getViewport(),а потом add, а у меня getViewport() вообще не стояло.
Скажите, а как сделать так, чтобы колонки были такие же по ширине как и содержимое в них, а то не все видно.
Код: plaintext
1.
2.
  public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth ){
           return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
      }
а потом пихай свою ДЖИТэйбл в этот метод
...
Рейтинг: 0 / 0
25.04.2006, 17:26
    #33689625
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
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
26.04.2006, 09:33
    #33690552
jikez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
peter6636
Код: plaintext
1.
2.
  public   static   int  autoResizeTable ( JTable aTable,  boolean  includeColumnHeaderWidth ){
           return  ( autoResizeTable ( aTable, includeColumnHeaderWidth, DEFAULT_COLUMN_PADDING ) );
      }
а потом пихай свою ДЖИТэйбл в этот метод

а что это за метод?
...
Рейтинг: 0 / 0
26.04.2006, 09:57
    #33690628
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
Мой личный
...
Рейтинг: 0 / 0
26.04.2006, 10:35
    #33690754
jikez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
peter6636Мой личный
А посмотреть на него можно?
если так секретно то можно по e-mail
...
Рейтинг: 0 / 0
26.04.2006, 11:06
    #33690892
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка с GUI
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблемка с GUI / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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