So juetzt nochmal was anderes. hab den code nochmal geändert und jetzt wird kein fehler mehr geworfen. dass einzige, was jetzt nicht funktioniert oder evtl vielleicht auch nicht mehr ist, dass er mir müll ausgiebt
aber zuerst der code:
und die ausgabe ist:
MUELLERA: 11
RADICE: 10
BEHNCKE: 4
DENNEHY: 7
PIESKER: 1
JOAS: 1
4INVOICE1: 1
EASY: 1
BORTOLAZZI: 1
ROMEU: 1
Moep: 2
Exception in thread "main" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:240)
at java.awt.Window.init(Window.java:368)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at javax.swing.JFrame.<init>(JFrame.java:207)
at CSVTest.<init>(CSVTest.java:51)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
zusätliche infos: das programm lässt sich ohne probleme compelieren allerdings ist die ausgabe dieser zeilen in der entwicklungsumgebung selbst. und nicht in einer jtabele die ich doch so gerne hätte. und die namen endlich zu sortieren ^^
wenn ihr noch fragen dazu habt, da ich zu ungenau beschrieben habe oder sonst irgendwas nicht versteht von meinem nonsens dann fragt bitte und überlest diesen foren post nicht nur.
thx
aber zuerst der code:
Code:
import java.io.File;
import java.io.IOException;
import java.util.Vector;
import java.util.Date;
import jxl.*;
import jxl.write.*;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import java.io.*;
import java.lang.*;
import jxl.write.Number;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class CSVTest extends JFrame
{
// Initialisieren der globalen Variablen
public String path = "//test/transporte.xls";
public Workbook workbook = null;
public Vector<NameCounter> nameVector = new Vector<NameCounter>();
private class MeinWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent arg0)
{
System.exit(0);
}
}
private String[] columnNamen = { "Spalte 1", "Spalte 2" };
private DefaultTableModel tableModel;
private JButton button;
private JComponent contentPane = (JComponent) getContentPane();
CSVTest()
{
super("CSV Test");
setSize(800, 600);
initLayout();
setLocationRelativeTo(null);
addWindowListener(new MeinWindowListener());
setVisible(true);
setResizable(true);
}
void initLayout()
{
contentPane.setLayout(new BorderLayout());
tableModel = new DefaultTableModel(null, columnNamen);
JTable tableZahlen = new JTable(tableModel);
tableZahlen.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(tableZahlen);
scrollPane.setPreferredSize(new Dimension(300, 300));
JPanel jpTable = new JPanel();
jpTable.add("Center", scrollPane);
contentPane.add("West", jpTable);
button = new JButton("Einlesen");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
readFile();
}
});
JPanel jpButton = new JPanel();
jpButton.add(button);
contentPane.add("South", jpButton);
}
protected void readFile()
{
try{
// Abfangen der Exceptions
try
{
// Einlesen der Datei
this.workbook = Workbook.getWorkbook(new File("//java/test/transporte.xls"));
}
catch (BiffException e)
{
System.out.println("BiffException" + e.getMessage());
}
catch (IOException e)
{
System.out.println("IOException" + e.getMessage());
}
// Tabelle initialisieren
Sheet sheet = this.workbook.getSheet(0);
// Erstellen der Zellenobjekte
String cellText;
NameCounter nameCounter;
// Die zu durchsuchende Spalte und Startzeile initialisieren
int suchSpalte = 4;
int startZeile = 8;
// Schleife für Zellenüberprüfung
for (int i = startZeile; i < sheet.getRows(); i++)
{
// Einlesen der Zellen in die String-Variablen
cellText = sheet.getCell(suchSpalte, i).getContents().trim();
nameCounter = isNameInVector(cellText);
if (nameCounter == null)
{
if (!cellText.equals(""))
{
this.nameVector.add(new NameCounter(cellText));
}
}
else
{
nameCounter.setCounterUp();
}
}
}
catch (Exception e)
{
System.out.println("IOException" + e.getMessage());
}
}
/**
* Überprüfen ob der Name bereits im Vector vorhanden ist.
*/
public NameCounter isNameInVector(String name)
{
NameCounter nameCounter = null;
NameCounter nameCounterTest;
for (int i = 0; i < nameVector.size(); i++)
{
nameCounterTest = nameVector.elementAt(i);
if (nameCounterTest.getName().equals(name))
{
nameCounter = nameCounterTest;
break;
}
else
{
nameCounter = null;
}
}
return nameCounter;
}
CSVTest frame = new CSVTest ();
public static void main(String[] args)
{
new ExcelTest().start();
new CSVTest();
}
}
und die ausgabe ist:
MUELLERA: 11
RADICE: 10
BEHNCKE: 4
DENNEHY: 7
PIESKER: 1
JOAS: 1
4INVOICE1: 1
EASY: 1
BORTOLAZZI: 1
ROMEU: 1
Moep: 2
Exception in thread "main" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:240)
at java.awt.Window.init(Window.java:368)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at javax.swing.JFrame.<init>(JFrame.java:207)
at CSVTest.<init>(CSVTest.java:51)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
at CSVTest.<init>(CSVTest.java:178)
zusätliche infos: das programm lässt sich ohne probleme compelieren allerdings ist die ausgabe dieser zeilen in der entwicklungsumgebung selbst. und nicht in einer jtabele die ich doch so gerne hätte. und die namen endlich zu sortieren ^^
wenn ihr noch fragen dazu habt, da ich zu ungenau beschrieben habe oder sonst irgendwas nicht versteht von meinem nonsens dann fragt bitte und überlest diesen foren post nicht nur.
thx