1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

Не Удается Установить Фиксированную Ширину Столбцов У Таблицы

Тема в разделе "Java", создана пользователем Anneta, 3 июл 2013.

Статус темы:
Закрыта.
  1. Anneta

    Anneta New Member

    Репутация:
    0
    Регистрация:
    5 фев 2011
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте!
    хочу в таблице все столбцы сделать фиксированной ширины (каждому столбцу установить свою ширину)

    Код:
    	public Form() {
    initComponents();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    ...
    
    //создаем модель данных и заполнем ее данными из DataRevie.dataRevie
    TableModel model = new TableNewRevieModel(DataRevie.dataRevie);
    //подключаем модель данных к таблице
    jTable1.setModel(model);
    
    
    Component c = new MyEditor().getTableCellEditorComponent(jTable1,
    null, true, 0, 0);
    jTable1.setRowHeight(c.getPreferredSize().height);
    
    jTable1.addMouseListener(new MouseAdapter(){ 
    @Override
    public void mouseClicked(MouseEvent e){
    if (jTable1.getSelectedColumn() != 7 ){
    jTextPane1.setText(jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString());
    bTake.setVisible(true);
    bSpam.setVisible(true);
    }			  
    }
    @Override
    public void mousePressed(MouseEvent e){ 
    if (jTable1.getSelectedColumn() == 7){
    try{
    String url = jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()).toString();
    Desktop.getDesktop().browse(new URI(url));					  
    }catch(IOException e1){
    e1.printStackTrace();
    }catch(URISyntaxException e1){
    e1.printStackTrace();
    }
    
    }
    
    
    }
    
    });
    jTable1.setDefaultRenderer ( Object.class, new DefaultTableCellRenderer()
    {
    private JLabel l = new JLabel ();
    public Component getTableCellRendererComponent ( JTable table, Object value,
    boolean isSelected, boolean hasFocus,
    int row, int column )
    {
    
    if(column == 7) {
    //Чтобы JLabel выглядел как полноценная гиперссылка
    l.setText("<html><a href=yandex.ru>"+value.toString()+"</a></html>");
    //Чтобы JLabel выглядел как полноценная гиперссылка при наведении курсора мыши
    l.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
    return l;
    }else{
    
    l.setText(value.toString());
    return l;
    }
    
    }
    } );
    
    TableRowSorter<TableModel> sorter = new TableRowSorter(model) {
    @Override
    public Comparator<?> getComparator(int column) {
    // для нулевой строки+
    if (column == 0) {
    return new Comparator<String>() {
    @Override
    public int compare(String s1,String s2) {
    return Integer.parseInt(s1) - Integer.parseInt(s2);
    }
    };
    }
    // для всех остальных
    return super.getComparator(column);
    }
    };
    jTable1.setRowSorter(sorter);
    
    // jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
    //jTable1.getColumnModel().getColumn(0).setMaxWidth(3);
    //jTable1.getColumnModel().getColumn(0).setResizable(false);
    // jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
    jTable1.getColumnModel().getColumn(1).setMaxWidth(20);
    // jTable1.getColumnModel().getColumn(1).setResizable(false);	  
    
    ....
    
    }
    вот это все
    Код:
    		// jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
    jTable1.getColumnModel().getColumn(0).setMaxWidth(10);
    jTable1.getColumnModel().getColumn(0).setResizable(false);
    jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
    jTable1.getColumnModel().getColumn(1).setMaxWidth(20);
    jTable1.getColumnModel().getColumn(1).setResizable(false);
    я перепробова ничего не помогло=(

    подскажите в чем может быть причина?
     
  2. Anneta

    Anneta New Member

    Репутация:
    0
    Регистрация:
    5 фев 2011
    Сообщения:
    3
    Симпатии:
    0
    решено, проблема была из-за повторного заполнения модели и обновления таблицы в другом методе
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей