# Java Oberfläche Code einfügen



## Flooow (28. April 2011)

Guten Morgen,

Ich hab ein kleines Problem, und zwar  möchte ich das das dieser code  



```
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInput {

  // Anfang Attribute
  // Ende Attribute



  // Anfang Methoden
  public static void main(String[] args) {

    File file = new File("Mappe11.csv");
    FileInputStream fis = null;
    BufferedInputStream bis = null;
    DataInputStream dis = null;

    try {
      fis = new FileInputStream(file);

      // Here BufferedInputStream is added for fast reading.
      bis = new BufferedInputStream(fis);
      dis = new DataInputStream(bis);

      // dis.available() returns 0 if the file does not have more lines.
      while (dis.available() != 0) {

      // this statement reads the line from the file and print it to
        // the console.
        System.out.println(dis.readLine());
      }

      // dispose all the resources after using them.
      fis.close();
      bis.close();
      dis.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  // Ende Methoden
}
```

bei einem Knopf in meiner GUI eingefügt wird
jedoch wirft  mir das pro dauernt nur Fehler, könnte mir das einer Richtigerweise in meine Oberfläche einfügen?


```
// Anfang Methoden
  public void button1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  public void button2_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }
```

der angefügte code soll halt bewirken das eine Datei eingelesen und ausgegeben wird

vielen dank =)


----------



## vfl_freak (28. April 2011)

Moin,



Flooow hat gesagt.:


> bei einem Knopf in meiner GUI eingefügt wird


Knopf ? ? Du meinst einen Button  ;-)
Aber Du willst doch nicht ernsthaft eine MAIN-Methode in den Actionlistener einfügen oder 




Flooow hat gesagt.:


> jedoch wirft  mir das pro dauernt nur Fehler



*pro* was 
Und welche Fehler?
Verrätst Du das? 

Gruß
Klaus


----------



## Flooow (28. April 2011)

Also  
ich kann java eig. kein stück xD

und ich hab ernsthaft kein plan wie ich das da vernümftig reinbekomm -.-*

programm, entschuldige mich bitte =)

ich hab mir ja auch schon gedacht das es an der Main-Methode liegt jedoch weiß ich nich 
wie ich die so umschreibe das es passt. Das einlesen Funktioniert auch, nur halt nich beim button.


----------



## vfl_freak (28. April 2011)

Moin,



Flooow hat gesagt.:


> Also
> ich kann java eig. kein stück xD
> 
> und ich hab ernsthaft kein plan wie ich das da vernümftig reinbekomm -.-*
> ...



aha - das ist jetzt die Beschreibung der auftretenden Fehler   

(a) Du musst den/die Listener den jeweiligen gewünschten Button zuordnen
(b) Ich sehe in Deiner main-Methode KEINE Button, denen ein Listener zugeordnet werden könnte
(c) die Listener enthalten den gewünschten, der bei Anklicken des jeweiligen Button ausgeführt werden soll

http://openbook.galileocomputing.de...10_002.htm#mj6367b03ecdf1b782fddcf60ac6d4658c

Gruß
Klaus


----------



## Akeshihiro (28. April 2011)

Die main-Methode kannst du natürlich nicht irgendwo einfügen, du kannst aber den Inhalt der Methode dort einfügen, wo du ihn brauchst oder du schreibst eine neue Methode, befüllst diese mit deinem Zeug und rufst sie dann beim Klick auf den Button auf.

Aber so oder so, ich würde mal sagen, dass du dir mal Tutorials oder Dokumentationen, z.B. Javainsel (gibts als Openbook bei galileo-computing), anschaust, da dir offensichtlich jede Menge Grundlagen fehlen.


----------



## Flooow (28. April 2011)

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 27.04.2011
  * @author
  */

public class neue extends JFrame {
  // Anfang Attribute
  private Label label1 = new Label();
  private Button button1 = new Button();
  private TextField textField1 = new TextField();
  private Label label2 = new Label();
  private TextField textField2 = new TextField();
  private Button button2 = new Button();
  private TextArea textArea1 = new TextArea("", 1, 1, TextArea.SCROLLBARS_NONE);
  private Label label3 = new Label();
  private Button Auswahl = new Button();
  private Button button3 = new Button();
  // Ende Attribute

  public neue(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 523;
    int frameHeight = 545;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    label1.setBounds(24, 184, 91, 16);
    label1.setText("Anrufnummer:");
    label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label1);
    button1.setBounds(24, 88, 75, 25);
    button1.setLabel("Suche");
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button1_ActionPerformed(evt);
      }
    });
    cp.add(button1);
    textField1.setBounds(8, 48, 121, 24);
    textField1.setText("textField1");
    cp.add(textField1);
    label2.setBounds(16, 16, 107, 16);
    label2.setText("Telefonnummer:");
    label2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label2);
    textField2.setBounds(8, 216, 121, 24);
    textField2.setText("textField2");
    cp.add(textField2);
    button2.setBounds(24, 256, 75, 25);
    button2.setLabel("Suche");
    button2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button2_ActionPerformed(evt);
      }
    });
    cp.add(button2);
    textArea1.setBounds(256, 112, 217, 249);
    textArea1.setText("(Ergebnis)");
    cp.add(textArea1);
    label3.setBounds(336, 72, 67, 16);
    label3.setText("Ergebnis:");
    label3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label3);
    Auswahl.setBounds(304, 24, 123, 25);
    Auswahl.setLabel("Auswahl Csv");
    Auswahl.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        Auswahl_ActionPerformed(evt);

      }
    });
    cp.add(Auswahl);
    button3.setBounds(8, 304, 139, 25);
    button3.setLabel("Gesamt CSV Ausgabe");
    button3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button3_ActionPerformed(evt);
      }
    });
    cp.add(button3);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void button1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  public void button2_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  public void Auswahl_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }

  public void button3_ActionPerformed(ActionEvent evt) {

    }

  // Ende Methoden

  public static void main(String[] args) {
    new neue("neue");
  }
}
```

seh ich das jez falsch?
ich mein ich hab hier doch dem Button1 nen actionlistener hinzugefügt`?

danke


----------



## MiMi (28. April 2011)

Und wo ist das Problem, alles aus der Main methode (von oben) in deine Methode 

```
public void button1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
  }
```
einzufuegen? 

PS: Methodennamen immer klein und Klassennamen immer gross schreiben


----------



## javaDeveloper2011 (28. April 2011)

Hallo Flooow,

ja, klar du hast für jeden button einen action listener, nur die methoden die beim implementierten actionPerformed aufgerufen werden machen hald nix.
Du kanst ruhig das datei-öffnen in die statische methode einer anderen Klasse auslagern, die sollte dann aber nicht main heißen und 'String[] args' übergeben bekommen!
Ich hab dir mal den Code der beiden Klassen etwas überarbeited.
(Bei mir kahm hald ne FileNotFoundException, aber wenn du die Datei 'Mappe11.csv' im Verzeichniss der Class-Dateien bzw. des JAR´s hast, müsste es klappen.

Hiel mal der neue Quellcode:


```
package buttontutorials;

import java.awt.Button;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class Neue extends JFrame {

    // Attribute
    private Label label1 = new Label();
    private Button button1 = new Button();
    private TextField textField1 = new TextField();
    private Label label2 = new Label();
    private TextField textField2 = new TextField();
    private Button button2 = new Button();

    private TextArea textArea1 = new TextArea("", 1, 1, TextArea.SCROLLBARS_NONE);
    private Label label3 = new Label();
    private Button auswahl = new Button();
    private Button button3 = new Button();

    // Konstruktor
    public Neue(String title) {
        
        // Frame-Initialisierung
        super(title);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 523;
        int frameHeight = 545;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) / 2;
        setLocation(x, y);
        Container cp = getContentPane();
        cp.setLayout(null);

        // Komponenten
        label1.setBounds(24, 184, 91, 16);
        label1.setText("Anrufnummer:");
        label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
        cp.add(label1);
        button1.setBounds(24, 88, 75, 25);
        button1.setLabel("Suche");
        button1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("butten 1 has been pressed, its text is: "+evt.getActionCommand());
            }
        });
        cp.add(button1);
        textField1.setBounds(8, 48, 121, 24);
        textField1.setText("textField1");
        cp.add(textField1);
        label2.setBounds(16, 16, 107, 16);
        label2.setText("Telefonnummer:");
        label2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
        cp.add(label2);
        textField2.setBounds(8, 216, 121, 24);
        textField2.setText("textField2");
        cp.add(textField2);
        button2.setBounds(24, 256, 75, 25);
        button2.setLabel("Suche");
        button2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("butten 2 has been pressed, its text is: "+evt.getActionCommand());
            }
        });
        cp.add(button2);
        textArea1.setBounds(256, 112, 217, 249);
        textArea1.setText("(Ergebnis)");
        cp.add(textArea1);
        label3.setBounds(336, 72, 67, 16);
        label3.setText("Ergebnis:");
        label3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
        cp.add(label3);
        auswahl.setBounds(304, 24, 123, 25);
        auswahl.setLabel("Auswahl Csv");
        auswahl.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("butten 'auswahl' has been pressed, its text is: "+evt.getActionCommand());
            }
        });
        cp.add(auswahl);
        button3.setBounds(8, 304, 139, 25);
        button3.setLabel("Gesamt CSV Ausgabe");
        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("butten 3 has been pressed, its text is: "+evt.getActionCommand());
                FileInput.printCSVFile();
            }
        });
        cp.add(button3);

        // endgültige Frame-Initialisierung
        setResizable(false);
        setVisible(true);
    }

    // wird beim start eines ausführbaen JAR´s aufgerufen, dessen Haupt-Klasse 'Neue' ist
    public static void main(String[] args) {
        Neue n = new Neue("Neue");
    }

}
```


```
package buttontutorials;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInput {

  // statische Methoden
    public static void printCSVFile() {

        File file = new File("Mappe11.csv");
        FileInputStream fis = null;
        BufferedInputStream bis = null;
        DataInputStream dis = null;

        try {
            fis = new FileInputStream(file);

            // Here BufferedInputStream is added for fast reading.
            bis = new BufferedInputStream(fis);
            dis = new DataInputStream(bis);

            // dis.available() returns 0 if the file does not have more lines.
            while (dis.available() != 0) {

                // this statement reads the line from the file and print it to
                // the console.
                System.out.println(dis.readLine());
            }

            // dispose all the resources after using them.
            fis.close();
            bis.close();
            dis.close();

        }
        catch (FileNotFoundException e) {
            System.err.println(e.toString());
        }
        catch (IOException e) {
            System.err.println(e.toString());
        }

    }

}
```

javaDeveloper2011


----------



## MiMi (28. April 2011)

JavaDeveloper, deinen Tatendrang alle ehre, aber meinst du net, es ist besser wenn er/ sie es selber macht anstatt es fertig 'serviert' zu bekommen?


----------



## Flooow (28. April 2011)

vielen vielen dank =)


----------



## MiMi (28. April 2011)

Eine einzige Antwort wurde angeklickt mit "Danke" jetzt ratet mal welche... -.-


----------



## vfl_freak (28. April 2011)

Moin,



MiMi hat gesagt.:


> Eine einzige Antwort wurde angeklickt mit "Danke" jetzt ratet mal welche... -.-



hmm - ich sehe *zwei* - wer bietet mehr  ?  

Gruß
Klaus


----------



## MiMi (28. April 2011)

Jetzt seh ich auch 2


----------



## SE (28. April 2011)

Gut Floow ... du hast nichts dazugelernt sondern nur copy&paste *dank JavaDev2011*.
Aber trotzdem kannst du den Thread als erledigt makieren.


----------

