Hallo ich habe ein Problem!
Und zwar lese ich aus einer XML-Datei Vokabeln und deren Übersetzung aus. Diese werden in einem Vector gespeichert.
Diese möchte ich nun in einem JTable in 2 Spalten ausgeben lassen.
Als erstes die Klasse für die Vokabeln:
Hier Teile des XML-Parsers
Das war ein Versuch allerdings überschreibt er jetzt immer die erste Zeile, so dass am Ende nur eine Vokabel mit Übersetzung in der Tabelle steht. Weil er jedes Mal einen neuen String benutzt.
Hat jemand einen Tipp für mich vielen Dank im voraus.
Ratze79
Und zwar lese ich aus einer XML-Datei Vokabeln und deren Übersetzung aus. Diese werden in einem Vector gespeichert.
Diese möchte ich nun in einem JTable in 2 Spalten ausgeben lassen.
Als erstes die Klasse für die Vokabeln:
Code:
public class Vokabeln {
private String deutsch;
private String englisch;
public Vokabeln() {}
//get-Methode für deutsche Vokabeln
public String getDeutsch() {
return deutsch;
}
//set-Methode für deutsche Vokabeln
public void setDeutsch(String deutsch) {
this.deutsch = deutsch;
}
//get-Methode für englische Vokabeln
public String getEnglisch() {
return englisch;
}
//set-Methode für englische Vokabeln
public void setEnglisch(String englisch) {
this.englisch = englisch;
}
}
Hier Teile des XML-Parsers
Code:
public static Vector vokabelVector = new Vector();
...
Vokabeln vokabeln = new Vokabeln();
while (parser.nextTag() != XmlPullParser.END_TAG)
{
parser.require(XmlPullParser.START_TAG, null, null);
String name = parser.getName();
String text = parser.nextText();
System.out.println ("<"+name+">"+text);
//wenn tagname = deutsch wird der Eintrag in Vokabeln.setDeutsch gesetzt
if (name.equals("deutsch"))
vokabeln.setDeutsch(text);
//wenn tagname = englisch wird der Eintrag in Vokabeln.setEnglisch gesetzt
else if (name.equals("englisch"))
vokabeln.setEnglisch(text);
parser.require(XmlPullParser.END_TAG, null, name);
}
vokabelVector.addElement(vokabeln);
Code:
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class Dictionary extends javax.swing.JFrame
{
public static boolean dictionary_running;
private JPanel jPanel_Dictionary;
private JTable jTable_Dictionary;
public TableModel jTable_DictionaryModel;
public Dictionary(String s) {
super();
initGUI();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
dictionary_running = false;
}
});
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jPanel_Dictionary = new JPanel();
getContentPane().add(jPanel_Dictionary, BorderLayout.CENTER);
jPanel_Dictionary.setLayout(null);
{
for(int k= 0 ; k< ReadXML.vokabelVector.size() ;k++)
{
//Füllen des bookVectors mit Vokabeln
Vokabeln vokabeln = (Vokabeln) ReadXML.vokabelVector.elementAt(k);
jTable_DictionaryModel = new DefaultTableModel(
new String[][] { { vokabeln.getDeutsch().toString(), vokabeln.getEnglisch().toString()} },
new String[] { "Column 1", "Column 2" });
}
jTable_Dictionary = new JTable();
jPanel_Dictionary.add(jTable_Dictionary);
jTable_Dictionary.setModel(jTable_DictionaryModel);
jTable_Dictionary.setBounds(28, 28, 343, 210);
}
}
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Hat jemand einen Tipp für mich vielen Dank im voraus.
Ratze79