Kłopot ze stworzeniem modelu.

0

Zerknijcie na poniższy kod.

1.Czy to jest prawidłowy sposób stworzenia modelu
2.Jezeli tak to nie widzę tabeli.

package program;

import javax.swing.JPanel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.AbstractTableModel;

import java.awt.FlowLayout;
import javax.swing.BoxLayout;

public class PanelStatystyki extends JPanel
{
	private JTable tabeleStatystyki;
	private PanelPrzebieguCwiczen panel;
	
	private GlownaRamka ramka;
	private JScrollPane przewijanieTabeli;
	private String[] nazwaKolumn;
	private Object[][] komorki;
	
	public PanelStatystyki(GlownaRamka main) 
	{
	this.ramka = main;	
		
        nazwaKolumn = new String[] {"data","wiek","waga"};
        komorki = new Object[][] {{"12-03-2014",29,85}, {"01-03-2015",30,80},{"02-06-2016",31,75}};
	    setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
	    
	    tabeleStatystyki = new JTable(new TabelaStatystyki(komorki,nazwaKolumn));
	   
		przewijanieTabeli = new JScrollPane(tabeleStatystyki);
		add(przewijanieTabeli);
	}
	
	class TabelaStatystyki extends AbstractTableModel 
	
	{    
		private String[] nazwaKolumn;
	    private Object[][] komorki;
		 
		public TabelaStatystyki(Object[][]komorki,String[]nazwaKolumn)
		{
		this.komorki = komorki;
		this.nazwaKolumn = nazwaKolumn;
		}
		
		@Override
		public int getColumnCount() {
			
			return 0;
		}

		@Override
		public int getRowCount() {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public Object getValueAt(int arg0, int arg1) {
			// TODO Auto-generated method stub
			return null;
		}	
	}	
}
0

Sposób jest w zasadzie poprawny, ale diabeł tkwi w szczegółach. U Ciebie jest tak:

        @Override
        public int getColumnCount() {
 
            return 0;
        }
 
        @Override
        public int getRowCount() {
            // TODO Auto-generated method stub
            return 0;
        }

Twoja tabela "chwali się", że ma 0 kolumn i o wierszy. Co byś chciał zobaczyć?

        @Override
        public int getColumnCount() {
 
            return nazwaColumn.length;;
        }
 
        @Override
        public int getRowCount() {
            // TODO Auto-generated method stub
            return komorki.length;
        }
        @Override
        public Object getValueAt(int row, int col) {
            // TODO Auto-generated method stub
            return komorki[row][col];
        }
        @Override
        public String getColumnName(int col) 
        {
            return nazwaKolumn[col];
        }
0

Ok tabela jest ale zawartości nie pokazuje a w konstruktorze umiesciłem

 
nKolumn = new String[] {"data","wiek","waga"};
nKomorki = new Object[][] {{"12-03-2014",29,85}, {"01-03-2015",30,80},{"02-06-2016",31,75}};
	    
tabeleStatystyki = new JTable(new TabelaStatystyki(nKomorki,nKolumn));
	   
przewijanieTabeli = new JScrollPane(tabeleStatystyki);

2

A po co to umieściłeś? Miałeś tylko zmienić metody getColumnCount, getRowCount, getValueAt i dopisać metodę getColumnName (to co napisałem w poście).
Czy w klasie GlownaRamka masz coś w rodzaju add(new PanelStatystyki(this));?

0

Wszystko działa, dzieki

0

Co jest nie tak, że metoda

 
@Override
	        public String getColumnName(int kolumny) 
	        {   
	        	return nazwaKolumn[kolumny];
	              
	            
	        }

zwraca mi

 
java.lang.ArrayIndexOutOfBoundsException: 4
	at program.PanelStatystyki$TabelaStatystyki.getColumnName(PanelStatystyki.java:368)
	at javax.swing.JTable.addColumn(Unknown Source)
	at javax.swing.JTable.createDefaultColumnsFromModel(Unknown Source)
	at javax.swing.JTable.tableChanged(Unknown Source)
	at javax.swing.JTable.setModel(Unknown Source)
	at javax.swing.JTable.<init>(Unknown Source)
	at javax.swing.JTable.<init>(Unknown Source)
	at program.PanelStatystyki.<init>(PanelStatystyki.java:189)
	at program.GlownaRamka.<init>(GlownaRamka.java:163)
	at program.GlownaRamka$1.run(GlownaRamka.java:52)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Cały kod:

 
package program;

import static program.Uzytkownik.zalogowany;

import javax.swing.JPanel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.AbstractTableModel;

import java.awt.FlowLayout;

import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.SwingConstants;

import java.awt.Component;

import javax.swing.ButtonGroup;

import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.table.DefaultTableModel;

public class PanelStatystyki extends JPanel
{
	
	private JTable tabeleStatystyki;
	private PanelPrzebieguCwiczen panel;
	
	private GlownaRamka ramka;
	private JScrollPane przewijanieTabeli;
	private String[] nKolumn;
	private Object[][] nKomorki;
	private JTextField poleLogin;
	private JTextField poleHaslo;
	private JTextField poleImie;
	private JTextField poleNazwisko;
	private JTextField poleEmail;
	private JLabel etykietaLogin;
	private JLabel etykietaHaslo;
	private JLabel etykietaImie;
	private JLabel etykietaNazwisko;
	private JLabel etykietaEmail;
	private JButton przyciskEdytuj;
	private JButton przysickZapiszZmiany;
	private JRadioButton rdbtnKobieta;
	private JRadioButton rdbtnMezczyzna;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	private TabelaStatystyki modelTabeli;
	
	public void ustawDane()
	{
		poleLogin.setText(ramka.getUzytkownicyMapa().get(zalogowany).getLogin());
		poleHaslo.setText(ramka.getUzytkownicyMapa().get(zalogowany).getHaslo());
		poleImie.setText(ramka.getUzytkownicyMapa().get(zalogowany).getImie());
		poleNazwisko.setText(ramka.getUzytkownicyMapa().get(zalogowany).getNazwisko());
		poleEmail.setText(ramka.getUzytkownicyMapa().get(zalogowany).getAdresEmail());
		if (ramka.getUzytkownicyMapa().get(zalogowany).getPlec().equals("Kobieta"))
		{
			rdbtnKobieta.setSelected(true);
		}
		if (ramka.getUzytkownicyMapa().get(zalogowany).getPlec().equals("Mezczyzna"))
		{
			rdbtnMezczyzna.setSelected(true);
		}
		
		
	}
	
	public PanelStatystyki(GlownaRamka main) 
	{
		setBackground(Color.WHITE);
	this.ramka = main;	
		
	       nKolumn = new String[] {"data","wiek","waga","BMI"};
           nKomorki = new Object[][] {
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    	};
	     
	    
	    
	    modelTabeli = new TabelaStatystyki(nKomorki,nKolumn); 
	    tabeleStatystyki = new JTable(modelTabeli);
	    
	    
	    
	   
	   
	    
	    
		przewijanieTabeli = new JScrollPane(tabeleStatystyki);
		
		poleLogin = new JTextField();
		poleLogin.setEditable(false);
		poleLogin.setColumns(10);
		
		
		poleHaslo = new JTextField();
		poleHaslo.setEditable(false);
		poleHaslo.setColumns(10);
		
		
		poleImie = new JTextField();
		poleImie.setEditable(false);
		poleImie.setColumns(10);
		
		
		
		poleNazwisko = new JTextField();
		poleNazwisko.setEditable(false);
		poleNazwisko.setColumns(10);
		
		
		poleEmail = new JTextField();
		poleEmail.setEditable(false);
		poleEmail.setColumns(10);
		
		
		etykietaLogin = new JLabel("login");
		
		etykietaHaslo = new JLabel("haslo");
		
		etykietaImie = new JLabel("imie");
		
		etykietaNazwisko = new JLabel("nazwisko");
		
		etykietaEmail = new JLabel("e-mail");
		
		rdbtnKobieta = new JRadioButton("Kobieta");
		rdbtnKobieta.setEnabled(false);
		buttonGroup.add(rdbtnKobieta);
		
		rdbtnMezczyzna = new JRadioButton("Mezczyzna");
		rdbtnMezczyzna.setEnabled(false);
		buttonGroup.add(rdbtnMezczyzna);
		
		przyciskEdytuj = new JButton("Edytuj");
		przyciskEdytuj.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				poleLogin.setEditable(true);
				poleHaslo.setEditable(true);
				poleImie.setEditable(true);
				poleNazwisko.setEditable(true);
				poleEmail.setEditable(true);
				rdbtnMezczyzna.setEnabled(true);
				rdbtnKobieta.setEnabled(true);
				przysickZapiszZmiany.setEnabled(true);
				przyciskEdytuj.setEnabled(false);
			}
		});
		
		przysickZapiszZmiany = new JButton("Zapisz zmiany");
		przysickZapiszZmiany.setEnabled(false);
		
	}
	
	class TabelaStatystyki extends AbstractTableModel 
	
	{    
		private String[] nazwaKolumn;
	    private Object[][] komorki;
		 
		public TabelaStatystyki(Object[][]komorki,String[]nazwaKolumn)
		{
		this.komorki = komorki;
		this.nazwaKolumn = nazwaKolumn;
		}
		
		@Override
		public int getColumnCount() {
			
			return komorki.length;
		}

		@Override
		public int getRowCount() {
			// TODO Auto-generated method stub
			return nazwaKolumn.length;
		}

		
		
		@Override
		public Object getValueAt(int wiersze, int kolumny) {
			// TODO Auto-generated method stub
			return komorki[wiersze][kolumny];
		}
		 @Override
	        public String getColumnName(int kolumny) 
	        {   
	        	return nazwaKolumn[kolumny];
	              
	            
	        }
		
		 
		
		
	}
}


0

Błąd jest w kodzie, którego nie dałeś.

at program.PanelStatystyki$TabelaStatystyki.getColumnName(PanelStatystyki.java:368)

Plik PanelStatystyki.java jest dużo krótszy.
A za kod

           nKomorki = new Object[][] {
                {null, null, null, null},
                {null, null, null, null},
...

to po śmierci pójdziesz do piekła, a za życia uschnie Ci ręka, żebyś nie mógł tego powtórzyć.

0

Krótszy poniewaz wyrzuciłem śmieci z GroupLayout. Wrzuce cały w takim razie. A te nulle to zdawałem sobie sprawe że pewnie tak sie nie robi ale uzyłem edytora design do tego. W takim razie jak stworzyc tabele ktora ma 4 kolumny {A,B,C,D} i ok 100 pustych wierszy w ktorych uzytkownik moze sobie wpisac dane ?

OTO KOD CALY:

 
package program;

import static program.Uzytkownik.zalogowany;

import javax.swing.JPanel;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.AbstractTableModel;

import java.awt.FlowLayout;

import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import javax.swing.SwingConstants;

import java.awt.Component;

import javax.swing.ButtonGroup;

import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.table.DefaultTableModel;

public class PanelStatystyki extends JPanel
{
	
	private JTable tabeleStatystyki;
	private PanelPrzebieguCwiczen panel;
	
	private GlownaRamka ramka;
	private JScrollPane przewijanieTabeli;
	private String[] nKolumn;
	private Object[][] nKomorki;
	private JTextField poleLogin;
	private JTextField poleHaslo;
	private JTextField poleImie;
	private JTextField poleNazwisko;
	private JTextField poleEmail;
	private JLabel etykietaLogin;
	private JLabel etykietaHaslo;
	private JLabel etykietaImie;
	private JLabel etykietaNazwisko;
	private JLabel etykietaEmail;
	private JButton przyciskEdytuj;
	private JButton przysickZapiszZmiany;
	private JRadioButton rdbtnKobieta;
	private JRadioButton rdbtnMezczyzna;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	private TabelaStatystyki modelTabeli;
	
	public void ustawDane()
	{
		poleLogin.setText(ramka.getUzytkownicyMapa().get(zalogowany).getLogin());
		poleHaslo.setText(ramka.getUzytkownicyMapa().get(zalogowany).getHaslo());
		poleImie.setText(ramka.getUzytkownicyMapa().get(zalogowany).getImie());
		poleNazwisko.setText(ramka.getUzytkownicyMapa().get(zalogowany).getNazwisko());
		poleEmail.setText(ramka.getUzytkownicyMapa().get(zalogowany).getAdresEmail());
		if (ramka.getUzytkownicyMapa().get(zalogowany).getPlec().equals("Kobieta"))
		{
			rdbtnKobieta.setSelected(true);
		}
		if (ramka.getUzytkownicyMapa().get(zalogowany).getPlec().equals("Mezczyzna"))
		{
			rdbtnMezczyzna.setSelected(true);
		}
		
		
	}
	
	public PanelStatystyki(GlownaRamka main) 
	{
		setBackground(Color.WHITE);
	this.ramka = main;	
		
	       nKolumn = new String[] {"data","wiek","waga","BMI"};
           nKomorki = new Object[][] {
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    		{null, null, null, null},
	    	};
	     
	    
	    
	    modelTabeli = new TabelaStatystyki(nKomorki,nKolumn); 
	   // tabeleStatystyki = new JTable(modelTabeli);
	    
	    
	    
	   
	   
	    
	    
		przewijanieTabeli = new JScrollPane(tabeleStatystyki);
		
		poleLogin = new JTextField();
		poleLogin.setEditable(false);
		poleLogin.setColumns(10);
		
		
		poleHaslo = new JTextField();
		poleHaslo.setEditable(false);
		poleHaslo.setColumns(10);
		
		
		poleImie = new JTextField();
		poleImie.setEditable(false);
		poleImie.setColumns(10);
		
		
		
		poleNazwisko = new JTextField();
		poleNazwisko.setEditable(false);
		poleNazwisko.setColumns(10);
		
		
		poleEmail = new JTextField();
		poleEmail.setEditable(false);
		poleEmail.setColumns(10);
		
		
		etykietaLogin = new JLabel("login");
		
		etykietaHaslo = new JLabel("haslo");
		
		etykietaImie = new JLabel("imie");
		
		etykietaNazwisko = new JLabel("nazwisko");
		
		etykietaEmail = new JLabel("e-mail");
		
		rdbtnKobieta = new JRadioButton("Kobieta");
		rdbtnKobieta.setEnabled(false);
		buttonGroup.add(rdbtnKobieta);
		
		rdbtnMezczyzna = new JRadioButton("Mezczyzna");
		rdbtnMezczyzna.setEnabled(false);
		buttonGroup.add(rdbtnMezczyzna);
		
		przyciskEdytuj = new JButton("Edytuj");
		przyciskEdytuj.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{
				poleLogin.setEditable(true);
				poleHaslo.setEditable(true);
				poleImie.setEditable(true);
				poleNazwisko.setEditable(true);
				poleEmail.setEditable(true);
				rdbtnMezczyzna.setEnabled(true);
				rdbtnKobieta.setEnabled(true);
				przysickZapiszZmiany.setEnabled(true);
				przyciskEdytuj.setEnabled(false);
			}
		});
		
		przysickZapiszZmiany = new JButton("Zapisz zmiany");
		przysickZapiszZmiany.setEnabled(false);
		
		
		
		
		GroupLayout groupLayout = new GroupLayout(this);
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
						.addComponent(etykietaLogin)
						.addComponent(etykietaHaslo)
						.addComponent(etykietaImie)
						.addComponent(etykietaNazwisko)
						.addComponent(etykietaEmail))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(poleLogin, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(poleHaslo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(poleImie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(poleNazwisko, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(poleEmail, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(rdbtnKobieta)
								.addComponent(rdbtnMezczyzna)
								.addComponent(przyciskEdytuj)
								.addComponent(przysickZapiszZmiany))
							.addPreferredGap(ComponentPlacement.RELATED, 118, Short.MAX_VALUE)
							.addComponent(przewijanieTabeli, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
					.addContainerGap())
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(100)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(poleLogin, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(etykietaLogin))
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(poleHaslo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(etykietaHaslo))
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(przewijanieTabeli, GroupLayout.PREFERRED_SIZE, 354, GroupLayout.PREFERRED_SIZE)
						.addGroup(groupLayout.createSequentialGroup()
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleImie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaImie))
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleNazwisko, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaNazwisko))
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
								.addComponent(poleEmail, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addComponent(etykietaEmail))
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addComponent(rdbtnKobieta)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(rdbtnMezczyzna)
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addComponent(przyciskEdytuj)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(przysickZapiszZmiany)))
					.addContainerGap(89, Short.MAX_VALUE))
		);
		groupLayout.linkSize(SwingConstants.HORIZONTAL, new Component[] {przyciskEdytuj, przysickZapiszZmiany});
		setLayout(groupLayout);
		
	}
	
	class TabelaStatystyki extends AbstractTableModel 
	
	{    
		private String[] nazwaKolumn;
	    private Object[][] komorki;
		 
		public TabelaStatystyki(Object[][]komorki,String[]nazwaKolumn)
		{
		this.komorki = komorki;
		this.nazwaKolumn = nazwaKolumn;
		}
		
		@Override
		public int getColumnCount() {
			
			return komorki.length;
		}

		@Override
		public int getRowCount() {
			// TODO Auto-generated method stub
			return nazwaKolumn.length;
		}

		
		
		@Override
		public Object getValueAt(int wiersze, int kolumny) {
			// TODO Auto-generated method stub
			return komorki[wiersze][kolumny];
		}
		 @Override
	        public String getColumnName(int kolumny) 
	        {   
	        	return nazwaKolumn[kolumny];
	              
	            
	        }
		
		 
		
		
	}
}


0
  1. Przemyśl tę funkcję;
        @Override
        public int getColumnCount() {
 
            return komorki.length;
        }

Podpowiedź, ile jest kolumn w tabeli, 4 czy 100?
2. Jeśli musisz korzystać w modelu z tablicy, to

           nKomorki = new Object[100][]; 
           for(int i=0;i<100;i++)
           {
               nKomorki[i] = new Object[] {null,null,null,null};
           }

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