Hallo allerseits, ich habe folgendes Problem. Und zwar möchte ich, dass über einen Buttonklick in meiner GUI eine befüllte Tabelle erzeugt wird, die ihre Daten von einer XML Datei bezieht. Das ganze ist auch professorisch ohne den Button gelaufen, aber nun wird mir keine Exception übergeben, das ganze Funktioniert aber Trotzdem nicht. Hier einmal mein Code :
Und die 2 Klasse :
Habt gnade ich bin Java Neuling :rtfm:
Java:
import java.awt.Button;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
public class Test extends AbstractTableModel{
//erstelle Frame
/*
*
*/
private static final long serialVersionUID = 1L;
//erstellt statische Variablen für die Fenster
static TextArea ta;
static TextField tf;
static Vector<String> data;
static Vector<String> columns;
private static JTextField eingabe;
private static JButton bestätigen;
public static void main(String[] args) {
Test t = new Test();
JTable table = new JTable();
table.setModel(t);
table.getTableHeader().setDefaultRenderer(new DefaultTableCellRenderer()
{
/**
*
*/
private static final long serialVersionUID = 1L;
String[] cols = {"Linie","Ziel","Platz","HF","Abfahrt in (min)"};
public Component getTableCellRendererComponent(JTable arg0,Object arg1, boolean arg2, boolean arg3, int arg4,int col)
{
this.setText(cols[col]);
return this;
}
});
JScrollPane scrollpane = new JScrollPane(table);
JPanel panel = new JPanel();
panel.add(scrollpane);
JFrame frame = new JFrame();
frame.setTitle( "Mir fällt kein sinnvoller Name ein PROGRAMM" );
frame.setSize(600,500);
frame.setLocation(100,100);
JTextField TF = new JTextField("");
JButton Button = new JButton("Klick mich!!");
frame.add(panel, "North");
frame.add(TF, "Center");
frame.add(Button, "South");
//Methode für den Button
Button.addMouseListener(
new MouseAdapter(){
public void mouseClicked(MouseEvent e){
try {
Test t = new Test();
JTable table = new JTable();
table.setModel(t);
Test2.lesen(t);
System.out.println("test");
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
);
//macht das fenster sichtbar
frame.setVisible(true);
}
//Getter
public TextArea ta(){
return ta;
}
@Override
public Object getValueAt(int arg0, int arg1) {
return null;
}
public static JButton getBestätigen() {
return bestätigen;
}
public static void setBestätigen(JButton bestätigen) {
Test.bestätigen = bestätigen;
}
public static JTextField getEingabe() {
return eingabe;
}
public static void setEingabe(JTextField eingabe) {
Test.eingabe = eingabe;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return 0;
}
}
Und die 2 Klasse :
Java:
import java.io.*;
import java.net.URL;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Test2 {
/**
* @param t
*/
public static void lesen(Test t) throws Exception {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new URL("xy.php")
.openStream());
doc.getDocumentElement().normalize();
NodeList n1 = doc.getElementsByTagName("Linie");
NodeList n2 = doc.getElementsByTagName("Ziel");
NodeList n3 = doc.getElementsByTagName("Platz");
NodeList n4 = doc.getElementsByTagName("HF");
NodeList n5 = doc.getElementsByTagName("Zeit");
NodeList DFIpublic = doc.getElementsByTagName("Abfahrt");
Test.data = new Vector<String>();
Test.columns = new Vector<String>();
for (int i = 0; i < DFIpublic.getLength(); i++)
{
Test.data.addElement(n1.item(i).getFirstChild().getNodeValue());
Test.data.addElement(n2.item(i).getFirstChild().getNodeValue());
Test.data.addElement(n3.item(i).getFirstChild().getNodeValue());
Test.data.addElement(n4.item(i).getFirstChild().getNodeValue());
Test.data.addElement(n5.item(i).getFirstChild().getNodeValue());
}
Test.columns.add("");
Test.columns.add("");
Test.columns.add("");
Test.columns.add("");
Test.columns.add("");
} catch (Exception e) {
e.printStackTrace();
}
}
public int getRowCount() {
return Test.data.size() / getColumnCount();
}
public int getColumnCount() {
return Test.columns.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) Test.data.elementAt((rowIndex * getColumnCount())
+ columnIndex);
}
}
Habt gnade ich bin Java Neuling :rtfm:
Zuletzt bearbeitet von einem Moderator: