jTable Ein paar Fragen. 2

Ron-calli

Grünschnabel
Sorry für den Nicknamen, ich verspreche verbesserung :)
So nochmals der andere Thread, vielleicht löscht ein Mod ja den alten bitte.

Hallo erstmal,
dies ist mein erster Beitrag und ich werd dann mal loslegen. Diese jTable macht mich verrückt, google und diverse Bücher konnte mir nicht weiterhelfen.
Ich möchte aus einer Datei (Währung und Kurs) einträge in einer Tabelle welche 2 Spalten haben sollte einlesen. Wie mache ich dies am besten? Die Fehlermeldung kann ich leider nicht entschlüsseln, seht selbst:

PHP:
package mypackage2; 
import javax.swing.JFrame; 
import java.awt.Dimension; 
import javax.swing.JList; 
import java.awt.Rectangle; 
import javax.swing.JTable; 
import javax.swing.JScrollBar; 
import java.awt.ScrollPane; 
import java.math.*; 
import java.io.*; 

public class Frame1 extends JFrame 
{ 

final int ROUND_HALF_UP = 4; 
  BufferedReader in = null; 
  String result; 
  String line; 
  String[] datei; 
  String[][] currencies; 
String  columnNames[] = { 
      "Währung", "Kurs" 
    }; 
  private ScrollPane scrollPane1 = new ScrollPane(); 
  private JTable jTable1 = new JTable(currencies,columnNames); 

  public Frame1() 
  { 
    try 
    { 
      jbInit(); 
    } 
    catch(Exception e) 
    { 
      e.printStackTrace(); 
    } 

  } 

  private void jbInit() throws Exception 
  { 
    this.getContentPane().setLayout(null); 
    this.setSize(new Dimension(400, 300)); 
    scrollPane1.setBounds(new Rectangle(60, 85, 280, 115)); 
    scrollPane1.add(jTable1, null); 
    this.getContentPane().add(scrollPane1, null); 
  } 
  public String[] einlesen(String path) { 
    datei = new String[0]; 

    try { 
      in = new BufferedReader(new FileReader("c:\in.dat")); 
      while ((line = in.readLine()) != null) { 
        String arr[] = datei; 
        datei = new String[arr.length + 1]; 
        int i; 
        for (i=0; i<arr.length; i++) { 
          datei[i] = arr[i]; 
        } 
        datei[i] = line; 
      } 
      in.close(); 
    } catch (IOException e) { System.out.println("Fehler beim Lesen der Datei"); } 
    return datei; 
  } 
public String[][] sortieren() 
  {currencies = new String[datei.length][2]; 

    for (int i=0; i<datei.length; i++) { 
      for (int e=0; e<datei[i].length(); e++) { 
        if (datei[i].charAt(e) == ',') { 
          currencies[i][0] = datei[i].substring(1, e-1); //Währung 
          currencies[i][1] = datei[i].substring(e+1, datei[i].length()); //Wechselkurs in Euro 
        } 
      } 
    } 
    return currencies; 
  } 
}

Und hier die Main;

PHP:
package mypackage2; 
import java.awt.Frame; 
import java.awt.event.WindowAdapter; 
import java.awt.event.WindowEvent; 
import javax.swing.UIManager; 
import java.awt.Dimension; 
import java.awt.Toolkit; 

public class Application1 
{ 
  public Application1() 
  { 
    Frame frame = new Frame1(); 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    Dimension frameSize = frame.getSize(); 
    if (frameSize.height > screenSize.height) 
    { 
      frameSize.height = screenSize.height; 
    } 
    if (frameSize.width > screenSize.width) 
    { 
      frameSize.width = screenSize.width; 
    } 
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); 
    frame.addWindowListener(new WindowAdapter() 
      { 
        public void windowClosing(WindowEvent e) 
        { 
          System.exit(0); 
        } 
      }); 
    frame.setVisible(true); 
  } 

  public static void main(String[] args) 
  { 
    try 
    { 
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } 
    catch(Exception e) 
    { 
      e.printStackTrace(); 
    } 

    new Application1(); 
  } 
}
 
Schreib mal deine Fehlermeldung hinzu, dann brauch ich nicht
-ein neues projekt starten (oder einen alternativen editor)
-Copy und Paste durchführen
-compilieren
- fehlermeldung lesen ;)

Sprich eventuell kann ich dir gleich helfen ohne einen Finger krum zu
machen. Wenn das nicht klappt kann ich immer noch per Copy und Paste
arbeiten.

Unterstützte bitte unsere Faulheit, denn bezahlt wird keiner zum helfen, also
sollte mann es ihnen so einfach und gemütlich wie möglich machen :)
 
Fehlermeldung:
PHP:
Exception in thread "main" java.lang.NullPointerException
        at javax.swing.JTable$1.getRowCount(JTable.java:422)
        at javax.swing.JTable.getRowCount(JTable.java:1716)
        at javax.swing.JTable.valueChanged(JTable.java:3137)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSel
ectionModel.java:187)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSel
ectionModel.java:167)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSel
ectionModel.java:214)
        at javax.swing.DefaultListSelectionModel.setAnchorSelectionIndex(Default
ListSelectionModel.java:606)
        at javax.swing.JTable.initializeLocalVars(JTable.java:3547)
        at javax.swing.JTable.<init>(JTable.java:370)
        at javax.swing.JTable.<init>(JTable.java:308)
        at javax.swing.JTable.<init>(JTable.java:420)
        at mypackage2.Frame1.<init>(Frame1.java:25)
        at mypackage2.Application1.<init>(Application1.java:14)
        at mypackage2.Application1.main(Application1.java:47)
Press any key to continue...
Wenn ich compilre kommt keiner Fehlermeldung, sie erscheint erst wenn ich starte. Vielleicht liegt es and der in.dat. Wie müsste sie aussehen, damit keine Fehlermeldung mehr kommt? Ich werd noch verrückt :mad:
 
private JTable jTable1 = new JTable(currencies,columnNames);

Dort gibst du die currrencies dem Construtkor.


String[][] currencies;

Hat aber noch keinen Wert ;)
Drum funktioniert das nicht. Gib currencies einen Wert :)
 

Neue Beiträge

Zurück