JTable, nie wczytuje kolumn

JTable, nie wczytuje kolumn
Sevox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
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 :

Kopiuj
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?

Sevox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

@Rifresh, proszę o pomoc...

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
jp6.add(new JScrollPane(historia));
Sevox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
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...

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
JTable(TableModel dm)
//lub
JTable(Vector rowData, Vector columnNames)
Sevox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

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

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
Sevox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

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

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
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);
    }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.