Hallo,
ich habe ein Problem mit einer JTable.
Ich möchte ein Adressbuch in JAva schreiben. Da kann der Besucher Vor- und Nachnamen und Telefonnummer eingeben, die dann als Objekt in einer ArrayList gespeichert werden.
Das klappt auch alles. Doch dann möchte ich die Daten in einer Tabelle anzeigen lassen.
da weiss ich nicht wie ich das machen soll.
Habe schon versucht die arraylist als array zu casten, aber das ging auch nicht.
Könnt ihr mir sagen wie ich das machen soll, oder eine Internetseite geben, worauf man das lesen kann?
Hier ist der Code:
ich habe ein Problem mit einer JTable.
Ich möchte ein Adressbuch in JAva schreiben. Da kann der Besucher Vor- und Nachnamen und Telefonnummer eingeben, die dann als Objekt in einer ArrayList gespeichert werden.
Das klappt auch alles. Doch dann möchte ich die Daten in einer Tabelle anzeigen lassen.
da weiss ich nicht wie ich das machen soll.
Habe schon versucht die arraylist als array zu casten, aber das ging auch nicht.
Könnt ihr mir sagen wie ich das machen soll, oder eine Internetseite geben, worauf man das lesen kann?
Hier ist der Code:
Code:
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
//Hauptfenster
public class Adressbuch extends JFrame implements ActionListener {
static JTextArea adressen;
public Adressbuch(){
JMenuBar menubar = new JMenuBar();
menubar.setBounds(0,0,300,20);
menubar.setBackground(Color.ORANGE);
JMenu datei= new JMenu("Datei");
datei.setBackground(Color.ORANGE);
JMenuItem close = new JMenuItem("Schliessen");
close.setBackground(Color.ORANGE);
datei.add(close);
JMenu buch= new JMenu("Adressbuch");
buch.setBackground(Color.ORANGE);
JMenuItem neu = new JMenuItem("Neuer Eintrag");
neu.setBackground(Color.ORANGE);
neu.addActionListener(this);
JMenuItem suche = new JMenuItem("Suche");
suche.setBackground(Color.ORANGE);
suche.addActionListener(this);
buch.add(neu);
buch.addSeparator();
buch.add(suche);
menubar.add(datei);
menubar.add(buch);
TableModel mtm = new QuadratTableModel();
JTable tabelle = new JTable( mtm );
tabelle.setBounds(0,20,300,300);
setLayout(null);
setVisible(true);
setSize(300,300);
add(menubar);
add(tabelle);
}
public void actionPerformed(ActionEvent ev) {
if(ev.getActionCommand()=="Neuer Eintrag") {
new neuerEintrag();
}
if(ev.getActionCommand()=="Schliessen") {
setVisible(false);
}
}
}
//Das ist der Dialog, der geöffnet wird, wenn der Benutzer einen neuen Kontakt hinzufügen möchte.
class neuerEintrag extends JDialog implements ActionListener {
JTextField vorname, nachname, telefon;
JButton eintragen;
static ArrayList<Adresse> adressliste = new ArrayList<Adresse>();
public neuerEintrag() {
setLayout(null);
JLabel vn= new JLabel("Vorname:");
vn.setBounds(3,5,80,25);
add(vn);
vorname = new JTextField();
vorname.setBounds(80,5,100,25);
add(vorname);
JLabel nn= new JLabel("Nachname:");
nn.setBounds(3,30,80,25);
add(nn);
nachname = new JTextField();
nachname.setBounds(80,30,100,25);
add(nachname);
JLabel t= new JLabel("Telefon:");
t.setBounds(3,55,80,25);
add(t);
telefon = new JTextField();
telefon.setBounds(80,55,100,25);
add(telefon);
eintragen = new JButton("Eintragen");
eintragen.setBounds(3,100,100,25);
eintragen.addActionListener(this);
add(eintragen);
setVisible(true);
setSize(200,160);
setLocation(50,50);
}
public void actionPerformed(ActionEvent ev) {
Adresse adr= new Adresse(vorname.getText(),nachname.getText(),telefon.getText());
adressliste.add(adr);
dispose();
setVisible(false);
}
}
class QuadratTableModel extends AbstractTableModel {
public int getRowCount() {
return 17;
}
public int getColumnCount() {
return 3;
}
public Object getValueAt(int row, int column) {
//Hier weiß ich nicht weiter.
}
}
class Adresse {
String telefon, vorname, nachname;
public Adresse(String vn, String nn, String tn) {
telefon=tn;
vorname=vn;
nachname=nn;
}
}