Как делание для того, чтобы вышла вся полная информация в JTable

introducir la descripción de la imagen aquí

Я хотел бы знать, как делать для того, чтобы получился весь полный inforamación в JTable, что я создал внутри JScrollPane. Заголовок я это создал с кодом DefaultTableModel. Спасибо.

DefaultTableModel mMedico=new DefaultTableModel();
mMedico.addColumn("CÓDIGO");
mMedico.addColumn("NOMBRE");
mMedico.addColumn("APELLIDOS");
mMedico.addColumn("ESPECIALIDAD");
mMedico.addColumn("DNI");
mMedico.addColumn("FECHA DE NAC.");
mMedico.addColumn("EDAD");
mMedico.addColumn("SEXO");
mMedico.addColumn("DIRECCIÓN");
mMedico.addColumn("CORREO");
mMedico.addColumn("TELÉFONO");
mMedico.addColumn("FECHA DE REG.");
mMedico.addColumn("LOGIN");
mMedico.addColumn("CLAVE");
tblMedico.setModel(mMedico);

2
задан 20.07.2016, 01:52
3 ответа

Ты можешь строить JTable со следующими аргументами: Object [] [] восходит: Двухмерная договоренность, каждого элемента договоренности один renglГіn в таблице и каждый элемент renglГіn - стоимость соответствующей колонны. Object [] columns: Этикетки колонн. Если не используется String, берется стоимость toString ()

1
ответ дан 24.11.2019, 13:48

Как он сказал, что пользователь @Pedro Мартин дель Кампо ты можешь перемещать как имя колонн, так и Ваши соответствующие данные в договоренностях 1 и 2 размеров соответственно, как я показываю в следующем коде:

String nombresColumnas[] = {"CODIGO", "NOMBRE", "APELLIDOS"};

String datos[][] = {{"1", "roberto", "garcia"}, 
                    {"2", "maria", "perez"}, 
                    {"3","Jorge", "martinez"}};

DefaultTableModel model = new DefaultTableModel(datos, nombresColumnas);
jTable1.setModel(model);        

Доводить до сведения, что в пример я поместил table, jscrollpanel и кнопку, которая выполняет предыдущий код. Привет...

1
ответ дан 24.11.2019, 13:48

Добавочный я показываю которое они говорят тебе @PedroMartindelCampo и @ReneGarnica, тебе мало договорную форму, но которая несомненно избавит тебе от большого количества работы во время добавления статей к таблице, прежде всего, если ты приносишь их из базы данных.

Обязательные условия

  • Добавлять книжный магазин BeanBindings к проекту

Сейчас мы можем начинаться.

Создавать организацию

Эта организация представит в таблицу базы данных, таким образом, Ваши свойства они эквивалентные колоннам таблицы. В этом случае, у меня есть таблица Person со следующими колоннами:

  • Имя
  • Фамилия
  • F_Nac
  • УДОСТОВЕРЕНИЕ ЛИЧНОСТИ
  • Адрес
  • Телефон
  • Электронная почта

Которая мы идем в mapear в организацию:

public class Person {
    private String name;
    private String lastname;
    private Date birthDate;
    private String dni;
    private String address;
    private String phone;
    private String email;

    public Person() {

    }

    public Person(String name, String lastname, Date birthDate,
                    String dni, String address, String phone,
                    String email) {
        this.name = name;
        this.lastname = lastname;
        this.birthDate = birthDate;
        this.dni = dni;
        this.address = address;
        this.phone = phone;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

Если ты обращаешь внимание, каждое свойство - эквивалент колонне в таблице.

Создавать bindings для таблицы

Сейчас необходимо создавать bindings для таблицы. Мы это делаем с книжным магазином раньше упомянутая.

private void initBindings() {
    group = new BindingGroup();
    JTableBinding binding = SwingBindings.createJTableBinding(
            UpdateStrategy.READ,
            people, // <- importante
            tblPeople
    );
    group.addBinding(binding);
    this.initEntityBindings(binding);
    group.bind();
}

Поскольку возможно наблюдать, он не является очень трудным. Только давайте верить bindings для JTable, мы это добавляем к группе bindings и применяем bindings звоня в BindingGroup#bind. Однако, сосредоточись на линии:

people, // <- importante

Переменная people это будет та, которую будет содержать список людей каждый раз, когда делается консультация в базу данных. А именно, мы не создадим одну List<Person> каждый раз, когда мы сделали консультацию; в Вашем месте, мы отложим список и вновь наполним ее с результатами новой консультации. Поэтому, он рекомендуемый, что список был постоянной величиной в каком-то сайте (предпочтения в драйвере формуляра):

private static final List<Person> people;

Кроме того мы видим, что мы звоним в initEntityBindings, который мы увидим далее.

Присоединять bindings к свойствам

Здесь то, что мы делаем, состоит в том, чтобы присоединять просто каждую колонну таблицы bindeada со свойством связанной организации.

private void initEntityBindings(JTableBinding binding) {
  JTableBinding.ColumnBinding colBinding = binding.addColumnBinding(ELProperty.create("${name}"));
  colBinding.setColumnName("Nombre");
  colBinding.setColumnClass(String.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${lastname}"));
  colBinding.setColumnName("Apellido");
  colBinding.setColumnClass(String.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${birthDate}"));
  colBinding.setColumnName("F. Nac");
  colBinding.setColumnClass(Date.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${dni}"));
  colBinding.setColumnName("DNI");
  colBinding.setColumnClass(String.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${address}"));
  colBinding.setColumnName("Dirección");
  colBinding.setColumnClass(String.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${phone}"));
  colBinding.setColumnName("Teléfono");
  colBinding.setColumnClass(String.class);

  colBinding = binding.addColumnBinding(ELProperty.create("${email}"));
  colBinding.setColumnName("Correo E.");
  colBinding.setColumnClass(String.class);
}

Поскольку мы видим, из-за каждой колонны таблицы, мы присоединяем имя свойства организации и тип информации. Простой.

Демонстрация

Чтобы показывать одинокое функционирование ты должен делать консультацию в базу данных и mapear результаты в твоей организации.

while(rs.next()) {
    Person person = new Person();
    person.setName(rs.getString("nombre"));
    person.setLastname(rs.getString("apellido"));
    person.setBirthDate(rs.getDate("f_nac"));
    person.setDni(rs.getString("dni"));
    person.setAddress(rs.getString("direccion"));
    person.setPhone(rs.getString("telefono"));
    person.setEmail(rs.getString("email"));
    PersonController.add(person);
}

Где:

public class PersonController {

    public static final List<Person> people = new ArrayList<>();

    public static void add(Person p) { people.add(p); }

}

Результат

1
ответ дан 24.11.2019, 13:48