Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отображением всех заголовков столбцов 
:(
    Опции темы
erslgoeirjh
Дата 22.5.2012, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Есть таблица jTable, состоящая из 22 столбцов. Ей соответствует модель myTM:

Код

Object[][]  data = {{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""},{""}}; 
Object[] columnnames = {"col1","col2","col3","col4","col5","col6","col7","col8","col9","col10","col11","col12","col13","col14","col15","col16","col17","col18","col19","col20","col21","col22"};

//...

JTable  jTable = new JTable(myTM);
 

При этом таблица jTable находится внутри скроллпейна jScrollPane. Также таблице jTable я поставил модель столбцов mycm, в которой все стоблцы имеют одинаковую ширину:

Код

mytcm = jTable.getColumnModel();
mytc0 = mytcm.getColumn(0);
mytc0.setWidth(100);
mytc0.setPrefferedWidth(100);
mytc1 = mytcm.getColumn(1);
mytc1.setWidth(100);
mytc1.setPrefferedWidth(100);
mytc2 = mytcm.getColumn(2);
mytc2.setWidth(100);
mytc2.setPrefferedWidth(100);
mytc3 = mytcm.getColumn(3);
mytc3.setWidth(100);
mytc3.setPrefferedWidth(100);
mytc4 = mytcm.getColumn(4);
mytc4.setWidth(100);
mytc4.setPrefferedWidth(100);
mytc5 = mytcm.getColumn(5);
mytc5.setWidth(100);
mytc5.setPrefferedWidth(100);
mytc6 = mytcm.getColumn(6);
mytc6.setWidth(100);
mytc6.setPrefferedWidth(100);
mytc7 = mytcm.getColumn(7);
mytc7.setWidth(100);
mytc7.setPrefferedWidth(100);
mytc8 = mytcm.getColumn(8);
mytc8.setWidth(100);
mytc8.setPrefferedWidth(100);
mytc9 = mytcm.getColumn(9);
mytc9.setWidth(100);
mytc9.setPrefferedWidth(100);
mytc10 = mytcm.getColumn(10);
mytc10.setWidth(100);
mytc10.setPrefferedWidth(100);
mytc11 = mytcm.getColumn(11);
mytc11.setWidth(100);
mytc11.setPrefferedWidth(100);
mytc12 = mytcm.getColumn(12);
mytc12.setWidth(100);
mytc12.setPrefferedWidth(100);
mytc13 = mytcm.getColumn(13);
mytc13.setWidth(100);
mytc13.setPrefferedWidth(100);
mytc14 = mytcm.getColumn(14);
mytc14.setWidth(100);
mytc14.setPrefferedWidth(100);
mytc15 = mytcm.getColumn(15);
mytc15.setWidth(100);
mytc15.setPrefferedWidth(100);
mytc16 = mytcm.getColumn(16);
mytc16.setWidth(100);
mytc16.setPrefferedWidth(100);
mytc17 = mytcm.getColumn(17);
mytc17.setWidth(100);
mytc17.setPrefferedWidth(100);
mytc18 = mytcm.getColumn(18);
mytc18.setWidth(100);
mytc18.setPrefferedWidth(100);
mytc19 = mytcm.getColumn(19);
mytc19.setWidth(100);
mytc19.setPrefferedWidth(100);
mytc20 = mytcm.getColumn(20);
mytc20.setWidth(100);
mytc20.setPrefferedWidth(100);
mytc21 = mytcm.getColumn(21);
mytc21.setWidth(100);
mytc21.setPrefferedWidth(100);
jTableHeader = jTable.getTableHeader();
jTableHeader.setSize(2200, 32);
jTableHeader.setPreferredSize(new Dimension(2200, 32));
jTableHeader.setMaximumSize(new Dimension(2200, 32));
jTableHeader.setMinimumSize(new Dimension(2200, 32));
jTableHeader.setColumnModel(jthcm);
jTableHeader.setResizingAllowed(true);
jTableHeader.setVisible(true);
jTable.setTableHeader(jTableHeader);
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
for (j=0; j<22; j++) {
    mytc = mytcm.getColumn(j);
    mytc.setResizable(true);
}
jTable.setColumnModel(mytcm);
 

(Здесь mytcm имеет тип TableColumnModel, а mytc0, ..., mytc21, mytc имеют тип TableColumn).

Одно время я проводил какие-то манимпуляции с количеством столбов в таблице (изменил их число до 14), потом опять восстановил прежний вид таблицы (число столбцов равно 22). В результате чего при горизонтальной прокрутке скроллпейна отображается содержимое всех 22 столбцов таблицы, но что касается заголовков столбцов, то отображаются заголовки только 14 столбцов, а заголовки оставшихся 8 стоблцов--пустые.

Как сделать так, чтобы при горизонтальной прокрутке отображались заголовки всех 22 стоблцов (то есть чтобы отображались заголовки не только столбцов "col1", ..., "col14" , но также и заголовки столбцов "col15", ..., "col22")?

PM MAIL   Вверх
dorogoyIV
Дата 22.5.2012, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



а что циклы? вера не позволяет?  smile 

Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class Main extends JFrame
{
 private JTable table = new JTable();

 public Main()
 {
  createTable(22);
  table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  add(new JScrollPane(table));
 }

 private void createTable(int count)
 {
  DefaultTableModel model = (DefaultTableModel)table.getModel();
  TableColumnModel tcm = table.getColumnModel();

  Object [][] data = new Object [1][count];
  Object [] columnNames = new Object [count];

  for(int i = 0; i < count; i++)
  {
   data [0][i] = i + 1 + "";
   columnNames [i] = "col" + (i + 1);
  }
  model.setDataVector(data, columnNames);

  for(int i = 0; i < count; i++)
   tcm.getColumn(i).setWidth(100);
 }

 public static void main(String [] args)
 {
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    Main main = new Main();
    main.setDefaultCloseOperation(3);
    main.setBounds(100, 100, 400, 300);
    main.setVisible(true);}});
 }
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.