hallo leute,
nachdem ich nirgends was finden konnte, was mir wirklich weiterhilft, frag ich euch jetz.
Mein Problem: Ich habe eine GUI, deren Textfelder automatisch mit den Werten der JTable gefüllt werden sollen. Für die JTable hab ich ne extra Klasse und für das TableModel auch.
TableModel:
JTable(mit einigen Dingen, die ich eig nicht brauche, aber erstmal aus nem Buch so abgeschrieben habe, damits überhaupt funktioniert^^):
naja und jetzt hab ich versucht bei den Textfeldern in der GUI-Klasse (deren Code ich nich unbedingt posten will wenns sich vermeiden lässt weil da ziemlich viel müll drin is, der damit nix zu tun hat soweit ich das einschätzen kann
) die getValueAt-methode aufzurufen:
das is die einzige version, die ich bisher ausprobiert habe, die nich von eclipse unterstrichen wird^^
bzw damit erreich ich den gleichen effekt:
jedenfalls kommt, wenn ichs starten will folgendes:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at organizer.OrganizerGUI.getFeldDatum(OrganizerGUI.java:64)
at organizer.OrganizerGUI.getJFrame(OrganizerGUI.java:338)
at organizer.OrganizerGUI.access$0(OrganizerGUI.java:299)
at organizer.OrganizerGUI$3.run(OrganizerGUI.java:232)
at java.awt.event.InvocationEvent.dispatch(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)
ich bitte um eure Hilfe!!! ;(
nachdem ich nirgends was finden konnte, was mir wirklich weiterhilft, frag ich euch jetz.
Mein Problem: Ich habe eine GUI, deren Textfelder automatisch mit den Werten der JTable gefüllt werden sollen. Für die JTable hab ich ne extra Klasse und für das TableModel auch.
TableModel:
Code:
import javax.swing.table.*;
public class OrgTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
String[] columnNames = {"Termin","Datum","UhrzeitVon", "UhrzeitBis", "Beschreibung"};
Object[][] data = { {"test","5.5.2009","15.00","16.00","testest"},
{"test2","8.5.2009", "18.00","19.00","beschr"}};
public int getColumnCount() {
return 5;
}
public int getRowCount() {
return 2;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
@SuppressWarnings("unchecked")
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
}
JTable(mit einigen Dingen, die ich eig nicht brauche, aber erstmal aus nem Buch so abgeschrieben habe, damits überhaupt funktioniert^^):
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Table extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
static JTable table;
static OrgTableModel orgtablemodel;
public Table() {
super("JTable");
initialize();
addWindowListener(new WindowClosingAdapter(true));
orgtablemodel=new OrgTableModel();
table = new JTable(orgtablemodel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
table.setCellSelectionEnabled(true);
Container cp=getContentPane();
cp.add(new JScrollPane(table), BorderLayout.CENTER);
JButton button=new JButton("Moooin!");
button.addActionListener(this);
cp.add(button, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
//tableModel.printData();
System.out.println("gespeichert");
}
/**
* This method initializes this
*
*/
private void initialize() {
this.setSize(new Dimension(420, 202));
this.setTitle("Termine");
}
public static void main(String[]args)
{
Table table = new Table();
table.setSize(500,200);
table.setLocation(300,300);
table.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
table.setVisible(true);
}
}
naja und jetzt hab ich versucht bei den Textfeldern in der GUI-Klasse (deren Code ich nich unbedingt posten will wenns sich vermeiden lässt weil da ziemlich viel müll drin is, der damit nix zu tun hat soweit ich das einschätzen kann
Code:
...
FeldDatum.setText((String) Table.table.getValueAt(0,1));
...
das is die einzige version, die ich bisher ausprobiert habe, die nich von eclipse unterstrichen wird^^
bzw damit erreich ich den gleichen effekt:
Code:
FeldDatum.setText((String) Table.orgtablemodel.getValueAt(0,1));
jedenfalls kommt, wenn ichs starten will folgendes:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at organizer.OrganizerGUI.getFeldDatum(OrganizerGUI.java:64)
at organizer.OrganizerGUI.getJFrame(OrganizerGUI.java:338)
at organizer.OrganizerGUI.access$0(OrganizerGUI.java:299)
at organizer.OrganizerGUI$3.run(OrganizerGUI.java:232)
at java.awt.event.InvocationEvent.dispatch(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)
ich bitte um eure Hilfe!!! ;(