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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> column in JTable, каждому столбцу определенный размер 
V
    Опции темы
LAKERS
Дата 12.5.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 10.2.2006
Где: Москва

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



создал таблицу на 8 столбцов и 16 строк, как мне задать ширину второго столбца нужного размера, а не по умолчанию как все..? или лучше каждого столбца в отдельности?

Код

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
import javax.swing.*;
import javax.swing.table.*;

public class football extends JFrame {

    public football() {
        
        setTitle("Football 2006");
        
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        String[] columnNames = {"#",
                                "Team",
                                "G",
                                "W",
                                "T",
                "L",
                "  ",
                "P"};

        Object[][] data = {
            {new Integer(1), "CSKA",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
            {new Integer(1), "Lokomotiv",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
            {new Integer(1), "Spartak",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
            {new Integer(1), "Zenit",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
            {new Integer(1), "Rubin",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "FK Tom",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Moskow",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Amkar",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Saturn",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Rostov",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Dinamo",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "L.Energy",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Shinnik",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Spartak N",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "Torpedo",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        {new Integer(1), "K.Sovetov",
              new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1), new Integer(1)},
        };

        final JTable table = new JTable(data, columnNames);
        //table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    //table.setRowHeight(15);
    TableColumn column = new TableColumn();
    column.setPreferredWidth(9);
    //table.setAutoResizeMode(AUTO_RESIZE_ALL_COLUMNS);
    //AUTO_RESIZE_ALL_COLUMNS; 

    
        JScrollPane scrollPane = new JScrollPane(table);
        getContentPane().add(scrollPane);
    }

    public static void main(String[] args) {
       JFrame f = new football();
       f.setSize(220, 300);
       f.show();
            }

}


 
PM MAIL ICQ   Вверх
powerOn
Дата 12.5.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Используй: 
Код

jTable1.getColumn("Title 1").setPreferredWidth(10000);
 


--------------------
user posted image нет времени думать - нужно писать КОД!

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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 10.2.2006
Где: Москва

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



что-то ширину сток меняет замечательно а отдельные столбцы по приведенному выше коду не меняет почему-то... 
PM MAIL ICQ   Вверх
powerOn
Дата 15.5.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(LAKERS @  15.5.2006,  12:38 Найти цитируемый пост)
что-то ширину сток меняет замечательно а отдельные столбцы по приведенному выше коду не меняет почему-то...  


строка 73 и 74.
Цитата

TableColumn column = new TableColumn();
column.setPreferredWidth(9);


Ты создал объект Столбец и поменял его ширину. Только этот объект нигде не используется.

Нужно сначало получить столбец таблицы, а потом менять его ширину. Нипример: 
Код

TableColumn column = table.getColumn("Team");
column.setPreferredWidth(100);


  

Это сообщение отредактировал(а) MoonCat - 15.5.2006, 12:01


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LAKERS
Дата 15.5.2006, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 10.2.2006
Где: Москва

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



а нельзя не создавать TableColumn вообще, а сделать так?

Код

        JTable t1 = new JTable(data, columnNames);
    t1.setFont(new Font("Helvetica", Font.PLAIN, 9));
    t1.getColumn("#").setPreferredWidth(1);
    t1.getColumn("Team").setPreferredWidth(30);
    t1.getColumn("G").setPreferredWidth(1);
    t1.getColumn("W").setPreferredWidth(1);
    t1.getColumn("T").setPreferredWidth(1);
    t1.getColumn("L").setPreferredWidth(1);
    t1.getColumn(" ").setPreferredWidth(10);
    t1.getColumn("P").setPreferredWidth(1);
    
    t1.setRowHeight(13);


Добавлено @ 12:32 
у меня такое ощущение что если ширина всех столбцов превышает ширину  f.setSize(220, 300);, то тогда устанавливаются значения. а если меньше, то ставятся по умолчанию что-ли... :-( 
PM MAIL ICQ   Вверх
powerOn
Дата 15.5.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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




Цитата(LAKERS @  15.5.2006,  13:23 Найти цитируемый пост)
а нельзя не создавать TableColumn вообще, а сделать так?

??? Так ведь:

Цитата(MoonCat @  12.5.2006,  16:44 Найти цитируемый пост)
Используй: 
код Java
    
jTable1.getColumn("Title 1").setPreferredWidth(10000);



 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LAKERS
Дата 15.5.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 10.2.2006
Где: Москва

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



вот так тоже не хочет...

Код

       JTable t1 = new JTable(data, columnNames);
    TableColumn c1 = t1.getColumn("#");
    TableColumn c2 = t1.getColumn("Team");
    TableColumn c3 = t1.getColumn("G");
    TableColumn c4 = t1.getColumn("W");
    TableColumn c5 = t1.getColumn("T");
    TableColumn c6 = t1.getColumn("L");
    TableColumn c7 = t1.getColumn(" ");
    TableColumn c8 = t1.getColumn("P");

    t1.setFont(new Font("Helvetica", Font.PLAIN, 9));
    c1.setPreferredWidth(1);
    c2.setPreferredWidth(5);
    c3.setPreferredWidth(1);
    c4.setPreferredWidth(1);
    c5.setPreferredWidth(1);
    c6.setPreferredWidth(1);
    c7.setPreferredWidth(1);
    c8.setPreferredWidth(1);


Добавлено @ 12:36 
Цитата(MoonCat @ 15.5.2006,  12:32)
Цитата(LAKERS @  15.5.2006,  13:23 Найти цитируемый пост)
а нельзя не создавать TableColumn вообще, а сделать так?

??? Так ведь:

Цитата(MoonCat @  12.5.2006,  16:44 Найти цитируемый пост)
Используй: 
код Java
    
jTable1.getColumn("Title 1").setPreferredWidth(10000);






Код

        JTable t1 = new JTable(data, columnNames);

    t1.getColumn("#").setPreferredWidth(1);
    t1.getColumn("Team").setPreferredWidth(30);
    t1.getColumn("G").setPreferredWidth(1);
    t1.getColumn("W").setPreferredWidth(1);
    t1.getColumn("T").setPreferredWidth(1);
    t1.getColumn("L").setPreferredWidth(1);
    t1.getColumn(" ").setPreferredWidth(10);
    t1.getColumn("P").setPreferredWidth(1);


именно так и не хочет.... 
PM MAIL ICQ   Вверх
powerOn
Дата 15.5.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Нельзя устанавливаль ширину столбца меньшую, чем  getMinWidth() и большую чем getMaxWidth(). 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
zone51
Дата 23.5.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Доброго времени суток! Скажите, а как реализовать на яве квадратную  матрицу, причем в ячейки можно вводить значения? Пробовал JTable, но нельзя поменять размеры строк и столбцов, чтоб все одинаковае были, какой компонент использовать? Спасибо 


--------------------
The truth is out there
PM MAIL   Вверх
BlodTor
Дата 23.5.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



JTable использовать. 
Посмотри примеры о JTable например тут: http://java.sun.com/docs/books/tutorial/ui...ents/table.html
поменять размеры строк и столбцов, чтоб все одинаковае были тоже можно.
Самый простой способ:
Код

...
Object title [] = {"0","1","2"};
Object val[][]=  {{"0","1","0"},
                   {"0","1","0"},
               {"0","1","0"}};
JTable jTable = new JTable(val,title);
jTable.setRowHeight(50);
jTable.getColumn("0").setMaxWidth(50);
jTable.getColumn("1").setMaxWidth(50);
jTable.getColumn("2").setMaxWidth(50);
...

А вообще из JTable можно сотворить что угодно. Просто надо его пощупать (вернее его модели). 
PM MAIL   Вверх
powerOn
Дата 23.5.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(BlodTor @  23.5.2006,  16:33 Найти цитируемый пост)
.... (вернее его модели).  


Угу. И рендереры. 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
zone51
Дата 25.5.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Скажите а как сделать чтоб выравнивание шло не только при отображении ячейки но и при вводе туда значений? То есть ввожу цифру, а оно сразу налево тянется. Спасибо. 

Это сообщение отредактировал(а) zone51 - 25.5.2006, 19:15


--------------------
The truth is out there
PM MAIL   Вверх
powerOn
Дата 25.5.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Если у тебя editor для ячейки JTextField, то установи его свойство HorizontalAlignment:

setHorizontalAlignment(javax.swing.JTextField.LEFT); 


--------------------
user posted image нет времени думать - нужно писать КОД!

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

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

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


 




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


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

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