Hallo,
ich habe eine Klasse "NameWindow" die eine Tabelle beinhaltet.
Ich habe auch eine Klasse "NameWindowTableModel" die eine AbstractTableModel für die Tabelle in "NameWindow" darstellen soll. (ich hoffe ich habe sie richtig implementiert da ich swing-Anfänger bin)
Jetzt möchte ich die Tabelle in "NameWindow" mit der selbst implementierte AbstractTableModel verbinden. Ich weiss nur nicht wie?
Habe im net gelesen, dass man in "NameWindow" eine Variable von dem Typ "NameWindowTableModel" implementieren soll. Dadurch sollte man das Problem einfach lösen können.(habe das gemacht und auskommentiert. line 17)
Weiss aber jetzt nicht genau wie und wo man mit dieser Variable umgehen soll und ob es überhaupt richtig ist, oder man es grundsätzlich anders machen muss?
Wäre für jede Hilfe Dankbar!
Anbei die zwei Klassen:
NameWindow:
NameWindowTableModel:
ich habe eine Klasse "NameWindow" die eine Tabelle beinhaltet.
Ich habe auch eine Klasse "NameWindowTableModel" die eine AbstractTableModel für die Tabelle in "NameWindow" darstellen soll. (ich hoffe ich habe sie richtig implementiert da ich swing-Anfänger bin)
Jetzt möchte ich die Tabelle in "NameWindow" mit der selbst implementierte AbstractTableModel verbinden. Ich weiss nur nicht wie?
Habe im net gelesen, dass man in "NameWindow" eine Variable von dem Typ "NameWindowTableModel" implementieren soll. Dadurch sollte man das Problem einfach lösen können.(habe das gemacht und auskommentiert. line 17)
Weiss aber jetzt nicht genau wie und wo man mit dieser Variable umgehen soll und ob es überhaupt richtig ist, oder man es grundsätzlich anders machen muss?
Wäre für jede Hilfe Dankbar!
Anbei die zwei Klassen:
NameWindow:
Java:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
public class NameWindow extends JFrame {
/*
* die auskommetierte Variable
*/
// private static NameWindowTableModel nameTableModel;
private JPanel contentPane;
private JTable table;
private JScrollPane scrollPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NameWindow frame = new NameWindow();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public NameWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
scrollPane = new JScrollPane();
scrollPane.setBounds(10, 11, 251, 100);
contentPane.add(scrollPane);
table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null},
},
new String[] {
"New column", "New column", "New column"
}
));
scrollPane.setViewportView(table);
}
}
NameWindowTableModel:
Java:
import javax.swing.table.AbstractTableModel;
public class NameWindowTableModel extends AbstractTableModel {
// @Override
// public int getColumnCount() {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public int getRowCount() {
// // TODO Auto-generated method stub
// return 0;
// }
//
// @Override
// public Object getValueAt(int rowIndex, int columnIndex) {
// // TODO Auto-generated method stub
// return null;
// }
public int getColumnCount(){
return 3;
}
public int getRowCount(){
return 25;
}
public Class<?> getColumnClass(int columnIndex){
switch(columnIndex){
case 0: return boolean.class;
case 1: return String.class;
case 2: return String.class;
default: throw new IllegalArgumentException("Falsche Spalte");
}
}
public String getColumnName(int columnIndex){
switch(columnIndex){
case 0: return "Verheiratet?";
case 1: return "Name";
case 2: return "Nachname";
default: throw new IllegalArgumentException("Falsche Spalte");
}
}
public boolean isCellEditable(int rowIndex, int columnIndex){
switch(columnIndex){
case 0: return true;
case 1: return true;
case 2: return true;
default: throw new IllegalArgumentException("Falsche Spalte");
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0: return null;
case 1: return null;
case 2: return null;
default: throw new IllegalArgumentException("Falsche Zeile oder Spalte");
}
}
}
Zuletzt bearbeitet von einem Moderator: