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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не редактируються данные в JTable 
V
    Опции темы
skif18
Дата 14.12.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

private JTable getJTable() throws NullPointerException {
        if (jTable == null) {
            jTable = new JTable();
            jTable.setRowSelectionAllowed(true);
//            jTable.setCellSelectionEnabled(true);
            
            try{
                Thread t = new Thread() {
                      // Переопределяем в нем метод run
                      public void run()
                      {
//                            Collection s = null;
                            try {
                                Collection s = ms.getAllBl();
//                                System.out.println(s);
                                jTable.setModel(new BlTableModel(new Vector(s)));
                            } catch (PSQLException e) {
                                // TODO Автоматически созданный блок catch
                                e.printStackTrace();
                            } catch (SQLException e) {
                                // TODO Автоматически созданный блок catch
                                e.printStackTrace();
                            }
                            // И устанавливаем модель для таблицы с новыми данными

                        }
                      };
                t.start();
    
                        }catch(NullPointerException e){
                e.printStackTrace();
            }
            
            
        }
        return jTable;
    }
    


Но редактировать данные в ней невозможно smile , а надо. Что делать не подскажете?


--------------------

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


Опытный
**


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

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



BlTableModel

покажи модель


о том что данные должны (или не должны) редактироваться Вы указываете в моделе

Добавлено через 43 секунды
попутно вопрос... зачем трид создавать?

Добавлено через 14 минут и 10 секунд
а с тридом понял.. типо запрос к базе... в общем все как то очень каряво


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
skif18
Дата 14.12.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

package obedi;

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;
import obedi.Bliuda;
import javax.swing.table.AbstractTableModel;


public class BlTableModel extends AbstractTableModel
{
  // Сделаем хранилище для нашего списка студентов
  private Vector bliuda;
  static Bliuda st;
  // Модель при создании получает список студентов
  public BlTableModel(Vector bliuda)
  {
    this.bliuda = bliuda;
  }

  // Количество строк равно числу записей
  public int getRowCount()
  {
    if (bliuda != null) {
      return bliuda.size();
    }
    return 0;
  }

  // Количество столбцов - 4. Фамилия, Имя, Отчество, Дата рождения
  public int getColumnCount()
  {
    return 5;
  }

  // Вернем наименование колонки
  public String getColumnName(int column)
  {
    String[] colNames = { "Код", "Наименование", "Цена", "Тип", "В меню" };
    return colNames[column];
  }

  // Возвращаем данные для определенной строки и столбца
  public Object getValueAt(int rowIndex, int columnIndex)
  {
    if (bliuda != null) {
//     System.out.println(rowIndex);
//     System.out.println(columnIndex);
      // Получаем из вектора студента
     
     st = (Bliuda) bliuda.get(rowIndex);
     //      st = bliuda.get(rowIndex);
//     System.out.println(st);
      // В зависимости от колонки возвращаем имя, фамилия и т.д.
      switch (columnIndex) {
      case 0:
        return ((Bliuda) st).getFirstName();
      case 1:
        return ((Bliuda) st).getPatronymic();
      case 2:
        return ((Bliuda) st).getStudentId();
      case 3:
        return ((Bliuda) st).getEducationYear();
      case 4:
        return ((Bliuda) st).getGroupId();       
 //           st.getDateOfBirth());
      }
    }
    return null;
  }

  // Добавим метод, который возвращает студента по номеру строки
  // Это нам пригодится чуть позже
  public Bliuda getBl(int rowIndex) 
  {
    if(bliuda!=null) {
      if(rowIndex<bliuda.size() && rowIndex>=0) {
        return (Bliuda)bliuda.get(rowIndex);
      }
    }
    return null;
  }
}


 и ещё

Код

package obedi;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;


public class Bliuda implements Comparable
{
    private float studentId;
    private String firstName;
    private String surName;
    private String patronymic;
    private Date dateOfBirth;
    private char sex;
    private float groupId;
    private float educationYear;

    public Bliuda(ResultSet rs) throws SQLException
    {
//      setStudentId(rs.getString("code"));
      setFirstName(rs.getString("code"));
      setPatronymic(rs.getString("name"));
      setStudentId(rs.getFloat("cena"));
//      setSurName(rs.getString("patronymic"));
//      setSex(rs.getString("sex").charAt(0));
//      setDateOfBirth(rs.getDate("dateOfBirth"));
      setGroupId(rs.getFloat("type"));
      setEducationYear(rs.getFloat("vmenu"));
//      System.out.println(getPatronymic());
    }

    public Bliuda()
    {
      
    }
    
    public Date getDateOfBirth()
    {
      return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth)
    {
      this.dateOfBirth = dateOfBirth;
    }

    public float getEducationYear()
    {
      return educationYear;
    }

    public void setEducationYear(float educationYear)
    {
      this.educationYear = educationYear;
    }

    public float getGroupId()
    {
      return groupId;
    }

    public void setGroupId(float groupId)
    {
      this.groupId = groupId;
    }

    public float getStudentId()
    {
      return studentId;
    }

    public void setStudentId(float studentId)
    {
      this.studentId = studentId;
    }

    public String getFirstName()
    {
      return firstName;
    }

    public void setFirstName(String firstName)
    {
      this.firstName = firstName;
    }

    public String getPatronymic()
    {
      return patronymic;
    }

    public void setPatronymic(String patronymic)
    {
      this.patronymic = patronymic;
    }

    public String getSurName()
    {
      return surName;
    }

    public void setSurName(String surName)
    {
      this.surName = surName;
    }

    public char getSex()
    {
      return sex;
    }

    public void setSex(char sex)
    {
      this.sex = sex;
    }

    public String toString()
    {
      return firstName
        + " "
        + patronymic
        + ", "
        + studentId + ", " + groupId + ", "+educationYear;
    }

    public int compareTo(Object obj)
    {
      return this.toString().compareTo(obj.toString());
    }
}




--------------------

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


Опытный
**


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

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



public boolean isCellEditable(int row, int column) {
            return true;
        }

добавь в модель


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
skif18
Дата 14.12.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



goodday1941, спасибо. Получилось. А не подскажешь как теперь сделать чтоб изменения сохранялись? ну типа апдейт по изменению значения в ячейке...


--------------------

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


software saboteur
****


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

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



Модератор: Пожалуйста, один топик - один вопрос.


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

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.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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