TableModel setValueAt

时间:2016-05-24 17:50:51

标签: java tablemodel setvalue

你的AbstractTableModel有问题...我想指定setValueAt,我有一个LocalDate和一个布尔情况,但我不知道如何在setValueAt方法中指定...任何建议?

AbstractTableModel代码:

package de.hsbhv.mediapartner.app.model;

import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import de.hsbhv.mediapartner.app.data.Bestellungen;

public class BestellungTModel extends AbstractTableModel{

private ArrayList<Bestellungen> bliste = Bestellungen.getBestellListe();

String [] columnNames = { "Bestellnummer",
                          "Kundennummer",
                          "Name",
                          "Artikel",
                          "Bestelldatum",
                          "Summe",
                          "Status"};

public int getRowCount() {
    // TODO Auto-generated method stub
    return Bestellungen.getBestellListe().size();
}

@Override
public int getColumnCount() {
    // TODO Auto-generated method stub
    return this.columnNames.length;
}

@Override
public String getColumnName(int col) {
    return this.columnNames[col];
}

@Override
public Object getValueAt(int row, int col) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
    switch(col) {
    case 0 : return bliste.get(row).getBestellnummer();
    case 1 : return bliste.get(row).getKundennummer();
    case 2 : return bliste.get(row).getName();
    case 3 : return bliste.get(row).getArtikel();
    case 4 : return bliste.get(row).getBestelldatum().format(formatter);
    case 5 : return bliste.get(row).getSumme();
    case 6 : if (bliste.get(row).isStorniert()) return "Storniert";else return "Freigegeben";
}
return null;
}
@Override
public void setValueAt(Object aValue, int row, int col) {
    Bestellungen bestellungen = bliste.get(row);
    switch (col) {
    case 0 : bestellungen.setBestellnummer(aValue.toString());
    case 1 : bestellungen.setKundennummer(aValue.toString());
    case 2 : bestellungen.setName(aValue.toString());
    case 3 : bestellungen.setArtikel(aValue.toString());
    case 4 : bestellungen.setBestelldatum(LocalDate);
    case 5 : bestellungen.setSumme(aValue.toString());
    case 6 : bestellungen.setStorniert(boolean);
    }

    fireTableCellUpdated(row, col);
}
public void entfernen(int selectedRow) {
    bliste.remove(selectedRow);     
}

}

在案例4和案例6中,我有&#34; LocalDate&#34;和&#34;布尔&#34;只因为我不知道更好,我知道它不起作用;)

这是表格所在的小组:

package de.hsbhv.mediapartner.app.ui;

import java.awt.Color;
import java.awt.Font;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import de.hsbhv.mediapartner.app.data.Bestellungen;
import de.hsbhv.mediapartner.app.model.BestellungTModel;

public class BestellungenPanel extends JPanel {

private StartPanel hf;
private final StartPanel frame;
private JTable tblBestellung;
private BestellungTModel tmBestellung;

public BestellungenPanel(StartPanel parent) {
    frame = parent;
    setLayout(null);
    hf = frame;

    JLabel lblMediapartner = new JLabel("MediaPartner");
    lblMediapartner.setForeground(Color.BLUE);
    lblMediapartner.setFont(new Font("Roboto", Font.BOLD, 16));
    lblMediapartner.setBounds(12, 13, 157, 16);
    add(lblMediapartner);

    JSeparator separator = new JSeparator();
    separator.setBounds(118, 22, 465, 2);
    add(separator);

    JLabel lblBestellungen = new JLabel("Bestellungen");
    lblBestellungen.setFont(new Font("Roboto", Font.BOLD, 16));
    lblBestellungen.setForeground(Color.BLUE);
    lblBestellungen.setBounds(591, 13, 97, 17);
    add(lblBestellungen);

    JLabel lblStatus = new JLabel(" ");
    lblStatus.setBounds(239, 243, 56, 16);
    lblStatus.setVisible(false);
    add(lblStatus);

/*Bedienelemente*/
    JScrollPane spArtikel = new JScrollPane();
    spArtikel.setBounds(12, 37, 676, 222);
    add(spArtikel);

    tmBestellung = new BestellungTModel();
    tblBestellung = new JTable(tmBestellung);
    spArtikel.setViewportView(tblBestellung);

    JButton btnstornieren = new JButton("Stornieren");
    btnstornieren.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

        }
    });
    btnstornieren.setFont(new Font("Roboto", Font.PLAIN, 13));
    btnstornieren.setBounds(243, 272, 216, 25);
    add(btnstornieren);

    JButton btnZurck = new JButton("zur\u00FCck");
    btnZurck.setFont(new Font("Roboto", Font.PLAIN, 13));
    btnZurck.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            hf.getCl().show(hf.getCardPanel(), "Admin");
        }
    });
    btnZurck.setBounds(12, 272, 216, 25);
    add(btnZurck);

    JButton btnfreigeben = new JButton("Freigeben");
    btnfreigeben.setFont(new Font("Roboto", Font.PLAIN, 13));
    btnfreigeben.setBounds(472, 272, 216, 25);
    add(btnfreigeben);

}
}

最后我只想用一个按钮将布尔情况(来自AbstractTableModel的情况6)更改为true或false。

0 个答案:

没有答案