JTable, nie wczytuje kolumn

0

Witam, mam taki mały problem. Mam programik w javie oparty o JTabbedPane, na jednym z paneli chciałem zrobić tabelę z historią transakcji. Tylko problem w tym że nie za bardzo chce mi się ta tabelka porządnie zrobić... Próbuje tak :

String[] columns = {"Rodzaj transakcji", "Cel", "Kwota", "Data"};
        
        Object[][] data = {
        		{"Wpłata", "Blablabla", "100", "01/03/2013"},
        		{"Wypłata", "Blablabla", "6", "25/02/2013"},
        		{"Wypłata", "Blablabla", "6", "25/02/2013"},
        		{"Wypłata", "Blablabla", "6", "25/02/2013"}
        		};
        
        historia = new JTable(data, columns);

        historia.setPreferredScrollableViewportSize(new Dimension(406, 200));
        historia.setFillsViewportHeight(true);
        jp6.add(historia);

Jednak problem w tym że w tabeli widać same wiersze, kolumn nie. Jakieś pomysły?

0

@Rifresh, proszę o pomoc...

0

Tobie chodzi o to, że nie ma nagłówków kolumn?

jp6.add(new JScrollPane(historia));
0

No ok działa, dzięki. Teraz tylko mam problem jak uzupełniać tą tabelkę... Chciałbym żeby dodawała ona wiersz po każdej wpłacie/wypłacie następującymi wartościami :

user image

Jak to zrobić? Nie wiem ile będzie tych wpisów więc nie mogę zrobić tablicy o określonej ilości elementów. Czy muszę robić jakąś bazę danych do tego? Nie znam się na tym w ogóle, poproszę o jakieś wskazówki. Aha i zostaje jeszcze zostaje data wpłaty/wypłaty...

0

Użyj innego modelu (innego konstruktora klasy JTable) http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html,

JTable(TableModel dm)
//lub
JTable(Vector rowData, Vector columnNames)
0

Długo szukałem jak użyć tego TableModel, ale jakoś nadal nie wiem... Prosiłbym o jakieś wskazówki.

0

Przeczytać to mniej więcej przeczytałem ale nie widzę tam punktu dotyczącego dodawania nowych wierszy...

0

Omg, jak modelem jest tablica dwuwymiarowa, to nie ma prostego sposobu na jej powiększenie. Jak modelem jest oparty o kolekcję obiektów (np. ArrayList<...>), to po prostu wywołujesz metodę add(...). Masz kawałek kodu.

public class StudentsModel extends AbstractTableModel
{
    private String[] columnNames = {"Imię","Nazwisko","Indeks","Czy drukować","Skreślony"};
    private Class<?>[] columnClasses = {String.class,String.class,String.class,Boolean.class,Boolean.class};
    private ArrayList<Student> studenci = new ArrayList<Student>();
    ...
    public boolean add(Student student)
    {
        return studenci.add(student);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1