Halli Hallo liebe Community,
mein Problem ist folgendes:
Ich habe mein Hauptfenster erstellt mit einer Anleitung und zwei Buttons.
Der erste Button soll ein neues Fenster mit dem JFileChooser öffnen. Der Zweite soll das Hauptfenster beenden.
Das neue Fenster hat den ganz normalen Button des JFileChooser.
Das ganze lässt sich auch Prima Compilieren nur das Problem ist wenn ich den Button "Einlesen der CSV" (JFileChooser) betätige liefert mit Java folgende Fehler.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MyActionListener.actionPerformed(MyActionListener.java:65)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
Kommen wir zum HauptFenster
Weitergehts mit dem ActionListener
Und zuletzt das JFileChooserFenster
Bin immoment noch am Programm am arbeiten. Deswegen sind noch nicht alle Funktionen drinne und aufgeräumt ist es leider auch noch nicht so wie ich es will hoffe trotzdem ihr könnt das Programm einfach lesen. Da ihr mir schon helft will ich es euch so einfach wie möglich machen
Danke im vorraus
mein Problem ist folgendes:
Ich habe mein Hauptfenster erstellt mit einer Anleitung und zwei Buttons.
Der erste Button soll ein neues Fenster mit dem JFileChooser öffnen. Der Zweite soll das Hauptfenster beenden.
Das neue Fenster hat den ganz normalen Button des JFileChooser.
Das ganze lässt sich auch Prima Compilieren nur das Problem ist wenn ich den Button "Einlesen der CSV" (JFileChooser) betätige liefert mit Java folgende Fehler.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MyActionListener.actionPerformed(MyActionListener.java:65)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
Kommen wir zum HauptFenster
Java:
import java.io.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TransferTool_Layout extends JFrame
{
public MenuBar hauptMenue = new MenuBar();
public Menu menue1 = new Menu("Datei");
public Menu menue2 = new Menu("Funktion");
private Label lblUeberschrift = new Label("TransferTool Alpha 0.1");
public Button btnEinlesen = new Button("Einlesen der CSV");
public Button btnBeenden = new Button("Beenden");
public Panel pnlNorth = new Panel(new GridLayout(2,1));
public Panel pnlCenter = new Panel(new GridLayout(3,1));
public Panel pnlSouth = new Panel(new GridLayout(2,1));
private Label lblAnleitungUeb = new Label("Anleitung:") ;
private Label lblAnleitung = new Label("1. 2. 3.");
private Label lblLeer = new Label(" ") ;
private MyActionListener myActionListener = new MyActionListener(this);
private MyFocusListener myFocusListener = new MyFocusListener(this);
public TransferTool_Layout() //der Konstruktor
{
super("TransferTool Alpha 0.1"); //Aufruf des Konstruktors der Oberklasse
this.setSize(740,660);
this.lblUeberschrift.setFont(new Font("",Font.BOLD,22));
this.lblUeberschrift.setForeground(new Color(255,255,0));
this.pnlNorth.add(lblUeberschrift);
this.pnlNorth.add(lblLeer);
this.add(pnlNorth,BorderLayout.NORTH);
this.pnlCenter.add(lblAnleitungUeb);
this.pnlCenter.add(lblLeer);
this.pnlCenter.add(lblAnleitung);
this.add(pnlCenter,BorderLayout.CENTER);
this.pnlSouth.add(btnEinlesen);
this.pnlSouth.add(btnBeenden);
this.pnlSouth.add(lblLeer);
this.add(pnlSouth,BorderLayout.SOUTH);
this.pnlNorth.setBackground(Color.orange);
this.pnlCenter.setBackground(Color.orange);
this.pnlSouth.setBackground(Color.orange);
lblAnleitungUeb.setForeground(Color.yellow);
this.setVisible(true);
//Ereignissteuerung
this.addWindowListener(new MyWindowListener());
this.menue2.addActionListener(myActionListener);
this.menue1.addActionListener(myActionListener);
this.btnBeenden.addActionListener(myActionListener);
this.btnEinlesen.addActionListener(myActionListener);
this.menue1.add("Beenden");
this.menue1.add("Oeffnen");
this.menue1.add("Einlesen");
this.hauptMenue.add(menue1);
this.hauptMenue.add(menue2);
this.setMenuBar(hauptMenue);
}//Energiewerte_Layout
public static void main(String argv[])
{
TransferTool_Layout t = new TransferTool_Layout();
}//public static void main(String argv[])
}//public class Fenster5 extends Frame
Weitergehts mit dem ActionListener
Java:
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.io.*;
import javax.swing.*;
import java.lang.*;
import javax.swing.event.*;
import javax.swing.JFileChooser;
class MyActionListener implements ActionListener
{
String csv = "csv";
public JFileChooser chooser = new JFileChooser();
public JChooserFenster fenster;
//final FileFilter csvFilter = new FileNameExtensionFilter(csv);
public TransferTool_Layout befehl;
public MyActionListener(TransferTool_Layout t)
{
befehl = t;
}
public MyActionListener(JChooserFenster f)
{
fenster = f;
}
public void actionPerformed(ActionEvent e)
{
Object obj = e.getSource();
if(obj == befehl.btnBeenden) System.exit(0);
DecimalFormat df= new DecimalFormat("#,##0.00");
String menuText;
//chooser.addChoosableFileFilter(csvFilter);
menuText = e.getActionCommand();
if (obj == befehl.btnBeenden || obj instanceof MenuItem && menuText == "Beenden")
{
System.exit(0);
}//if (obj == fenster.btnBeenden)
if(obj == befehl.btnEinlesen || obj instanceof MenuItem && menuText == "Einlesen" )
{
String dateiname = chooser.getSelectedFile().getName();
fenster = new JChooserFenster();
/*BufferedReader in = new BufferedReader(new FileReader(dateiname));
in.close(); */
}
chooser.setMultiSelectionEnabled(true);
int option = chooser.showOpenDialog(null);
if(option == JFileChooser.APPROVE_OPTION)
{
File[] sf = chooser.getSelectedFiles();
String filelist = "nothing";
if(sf.length>0)
filelist = sf[0].getName();
for(int i=1;i<sf.length;i++)
{
filelist += "," + sf[i].getName();
}
}
}//public void actionPerformed(ActionEvent e)
}//public class MyActionListener implements ActionListener
Und zuletzt das JFileChooserFenster
Java:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
public class JChooserFenster extends JFrame
{
JButton open = new JButton("open");
JButton save = new JButton("save");
JButton dir = new JButton("Verzeichnis auswählen");
final JLabel statusbar = new JLabel("Ihre Auswahl wird hier angezeigt.");
public JChooserFenster()
{
super("JFileChooser");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
JButton open = new JButton("open");
JButton save = new JButton("save");
JButton dir = new JButton("Verzeichnis auswählen");
final JLabel statusbar = new JLabel("Ihre Auswahl wird hier angezeigt.");
open.addActionListener(new MyActionListener(this));
c.add(open);
c.add(save);
c.add(dir);
c.add(statusbar);
}
}
Bin immoment noch am Programm am arbeiten. Deswegen sind noch nicht alle Funktionen drinne und aufgeräumt ist es leider auch noch nicht so wie ich es will hoffe trotzdem ihr könnt das Programm einfach lesen. Da ihr mir schon helft will ich es euch so einfach wie möglich machen
Danke im vorraus
Zuletzt bearbeitet: