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];
}
}
}