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 ) die getValueAt-methode aufzurufen:
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!!! ;(