# Pop-Up eingabe für Zahlen



## blumenpeter (26. Jan 2010)

Hi,

ich bin auf der suche nach einer Möglichkeit zahlen einzugeben, wie texte per "JOptionPane.showInputDialog();":

[Java]
int anzahl;

[...]

anzahl = JOptionPane.showInputDialog("die Anzahl der Titel angeben", "ANZAHL");[/code]

Fehler: incompatible types
required: int
found: java.lang.String

gruß


----------



## eRaaaa (26. Jan 2010)

```
anzahl = Integer.parseInt(JOptionPane.showInputDialog("die Anzahl der Titel angeben", "ANZAHL"));
```

vllt. noch einen try-catch Block drum, damit du falsche Eingaben behandeln kannst...


----------



## blumenpeter (26. Jan 2010)

danke, klappt wunderbar!

nur habe ich jetzt ein weiteres Problem:

ich will in einer anderen Klasse auf das JTextArea zugreifen.
Die Klasse in der ich das new JTextArea(); habe, ist die
"class menu implements ActionListener" die in der ich darauf zugreifen will:
"class Database"


[Java]
public void auflisten()
    {

       // Liste der CDs ausgeben
      for(int i=0; i<disk.size(); i++)
      {
          System.out.println("Arraynummer: "+i);  //------ hier will ich text.panned

          if(disk.get(i) != null)
          {
              disk.get(i).ausgeben();
              System.out.println();   
          }

      }
    }[/Java]


----------



## eRaaaa (26. Jan 2010)

Kann man so jetzt schlecht sagen.Wahrscheinlich bräuchte Database erstmal eine Referenz auf "menu" (lieber groß schreiben) und menu müsste z.B. eine getter-Methode bereitstellen, welche die TextArea zurückgibt ???:L


----------



## blumenpeter (26. Jan 2010)

Hier mein Quelltext der Menu class

[Java]

import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

class Menu implements ActionListener {

    JFrame      frame1;
     JTextArea   text;
    JPanel      panel,panel2;
    JButton     b1,b2,b3,b4,b5,b6,b7,b8;
    JScrollPane scroller;
    JTextField  tf1;
    JProgressBar laden;

     int         test, x, m, k, sicher,laenge, anzahl, anzahlc;
    static String      addi, c, cp, d, t, r, kuen;

    Database DB1 = new Database();


    public void los() {

        frame1 = new JFrame();
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.setBackground(Color.WHITE);
        panel = new JPanel();
        panel2 = new JPanel();
        panel.setBackground(Color.WHITE);
        panel2.setBackground(Color.WHITE);
        laden = new JProgressBar();
        laden.setMaximum(100);
        laden.setMinimum(0);
        laden.setValue(0);
        b1 = new JButton("   1  ");
        b1.addActionListener(this);
        b1.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b1.setMaximumSize(new Dimension(Integer.MAX_VALUE, b1.getMaximumSize().height));
        b2 = new JButton("   2  ");
        b2.addActionListener(this);
        b2.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b2.setMaximumSize(new Dimension(Integer.MAX_VALUE, b2.getMaximumSize().height));
        b3 = new JButton("   3  ");
        b3.addActionListener(this);
        b3.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b3.setMaximumSize(new Dimension(Integer.MAX_VALUE, b3.getMaximumSize().height));
        b4 = new JButton("   4  ");
        b4.addActionListener(this);
        b4.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b4.setMaximumSize(new Dimension(Integer.MAX_VALUE, b4.getMaximumSize().height));
        b5 = new JButton("  Ja ");
        b5.addActionListener(this);
        b5.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b5.setMaximumSize(new Dimension(Integer.MAX_VALUE, b5.getMaximumSize().height));
        b6 = new JButton("Nein");
        b6.addActionListener(this);
        b6.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b6.setMaximumSize(new Dimension(Integer.MAX_VALUE, b6.getMaximumSize().height));
        b7 = new JButton("Speicehrn");
        b7.addActionListener(this);
        b7.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b7.setMaximumSize(new Dimension(Integer.MAX_VALUE, b7.getMaximumSize().height));
        b8 = new JButton("Laden");
        b8.addActionListener(this);
        b8.setAlignmentX(JButton.CENTER_ALIGNMENT);
        b8.setMaximumSize(new Dimension(Integer.MAX_VALUE, b8.getMaximumSize().height));


        panel.add(b1);
        panel.add(b2);
        panel.add(b3);
        panel.add(b4);
        panel.add(b5);
        panel.add(b6);
        panel.add(b7);
        panel.add(b8);
        text = new JTextArea(10, 20);
        text.setLineWrap(true);
        tf1 = new JTextField(c);
        tf1.setText("Hier eingabe Möglich!");
        tf1.selectAll();
        tf1.requestFocus();
        tf1.addActionListener(this);
        tf1.setMaximumSize(new Dimension(Integer.MAX_VALUE, tf1.getMaximumSize().height));
        scroller = new JScrollPane(text);
        scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        panel2.add(scroller);
        panel2.add(laden);
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS));
        frame1.getContentPane().add(BorderLayout.WEST, panel);
        frame1.getContentPane().add(BorderLayout.EAST, panel2);
        frame1.getContentPane().add(BorderLayout.SOUTH, tf1);
        frame1.setSize(350, 350);
        frame1.setVisible(true);

        text.append("Bitte Loggen Sie sich zunächst ein! \n");
        m=1;

    }

    public void anfangsMenu() {
        text.setText("");
        laden.setValue(100);
        text.append("\n##############\n");
        text.append("# Willkommen #\n");
        text.append("##############\n");
        scroller.getAutoscrolls();
        text.append("\nWollen Sie das Script\n");
        text.append("Starten? JA oder NEIN \n");
        k = 1;



    }

    public void hauptMenu(){


        text.setText("");
        text.append("######Hauptmenu######\n#####################\n# 1 = CD erstellen" +
                    "\n# 2 = DVD erstellen\n# 3 = BluRay erstellen\n#" +
                    "\n# 4 = Bibliothek anzeigen\n#####################");
        scroller.getAutoscrolls();


    }

    public void cdErstellen(){

        //JOptionPane.showInputDialog("Bitte Passwort eingeben", "Bitte Passwort eingeben");
        System.out.println("cdErstellen");

        t = JOptionPane.showInputDialog("Titel der CD angeben", "TITEL");
        kuen = JOptionPane.showInputDialog("Künstler angeben", "KÜNSTLER");
        while(anzahlc<2){
            try{
                anzahl = Integer.parseInt(JOptionPane.showInputDialog("die Anzahl der Titel angeben", "ANZAHL"));
                anzahlc = 2;
            }
            catch(Exception e){
                    text.append("Bitte geben Sie bei \"die Anzahl der Titel angeben\" " +
                            "\nnur Zahlen ein");
                    anzahlc = 1;
            }
        }

        laenge = Integer.parseInt(JOptionPane.showInputDialog("Länge der CD in Minuten", "LÄNGE"));

        //       anzahl = JOptionPane.showInputDialog("die Anzahl der Titel angeben", "ANZAHL");
//        laenge = JOptionPane.showInputDialog("Länge der CD in Minuten", "LÄNGE");

        DB1.erfasseDisk(new CD(t, kuen, anzahl, laenge));
        DB1.auflisten();
    }

    public void dvdErstellen(){

        System.out.println("dvdErstellen");

//        t = JOptionPane.showInputDialog("Titel der DVD angeben", "TITEL");
//        r = JOptionPane.showInputDialog("Künstler angeben", "KÜNSTLER");
//        laenge  =JOptionPane.showInputDialog("Länge der DVD in Minuten", "LÄNGE");

    }

    public void blurayErstellen(){

        System.out.println("blurayErstellen");

//        t = JOptionPane.showInputDialog("Titel der BluRay angeben", "TITEL");
//        r = JOptionPane.showInputDialog("Künstler angeben", "KÜNSTLER");
//        laenge  =JOptionPane.showInputDialog("Länge der BluRay in Minuten", "LÄNGE");

    }

    public void actionPerformed(ActionEvent ev) {

        try {
            if (ev.getSource() == b1) {
                text.append("Sie haben \"1\" gewählt, sind Sie sicher? \n");
                sicher = 1;
            }

        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }
///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b2) {
                text.append("Sie haben \"2\" gewählt, sind Sie sicher? \n");
                sicher = 2;
            }
        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }
///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b3) {
                text.append("Sie haben \"3\" gewählt, sind Sie sicher? \n");
                sicher = 3;
            }
        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b4) {
                text.append("Sie haben \"4\" gewählt, sind Sie sicher? \n");
                sicher = 4;
            }
        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b5 && k == 1) {

                text.append("JA \n");
                hauptMenu();
                k =2;
            }
            else if(ev.getSource() == b5 && sicher ==1){

                cdErstellen();
                sicher = 100;
            }
            else if(ev.getSource() == b5 && sicher ==2){

                dvdErstellen();
                sicher = 200;
            }
            else if(ev.getSource() == b5 && sicher ==3){

                blurayErstellen();
                sicher = 300;
            }
        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b6 && k ==1) {
                text.append("NEIN \n");
                System.exit(1);
            }
            else if(ev.getSource() == b6 && sicher ==1){

                hauptMenu();
                sicher = 100;
            }
            else if(ev.getSource() == b6 && sicher ==2){

                hauptMenu();
                sicher = 100;
            }
            else if(ev.getSource() == b6 && sicher ==3){

                hauptMenu();
                sicher = 100;
            }
        } catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try{
        if (ev.getSource() == tf1 ) {
            test = 1;
            c = tf1.getText();
            laden.setValue(25);

            if (c.equals("Admin")&& m==1) {

                text.append("\nGuten Tag Admin, geben Sie Ihr Kennwort ein!\n");
                laden.setValue(50);



                while(x<2){
                    cp = JOptionPane.showInputDialog("Bitte Passwort eingeben", "Bitte Passwort eingeben");

                if (cp.equals("123"))
                {
                    text.append("LogIn ERFOLGREICH!\n");
                    x = 2;
                    laden.setValue(75);
                    anfangsMenu();
                } 
                else{
                    text.append("\nFALSCHES KENNWORT - \nbitte neu eingeben\n");
                    x = 1;
                }
                        }
           }
                else if (m==1) {
                text.append("\nFALSCHER benutzername - \nbitte neu eingeben\n");
           }
        }
        }
        catch (Exception e) {
            text.append("Fehler im Code!\n" + "\n"+e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b7) {
                text.append("Sie wählten SPEICHERN\n");

                try{
                    ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("dome.ser"));
                    os.writeObject(Database.disk);
                    os.close();
                    System.out.println("\t|| Die Liste wurde im Hauptverzeichniss gespeichert ||");
                }   
                catch (Exception ex){
                    System.out.println("\n\t\t|| Datei konnte nicht gespeichert werden! ||\n"+ex);
                }
            }
        }
        catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }

///-----------------------------------------------------------------------------
///-----------------------------------------------------------------------------
        try {
            if (ev.getSource() == b8) {
                text.append("Sie wählten LADEN\n");

                try{
                    for(int i=0; i<Database.disk.size(); i++){
                    Database.disk.remove(i);
                    }
                ObjectInputStream is = new ObjectInputStream(new FileInputStream("dome.ser"));
                Database.disk = (ArrayList<Disk>) is.readObject();
                System.out.println("\t|| Die Liste wurde geladen ||");
                is.close();
                }
                catch(Exception ex){
                System.out.println("\n\t\t|| Datei konnte nicht geladen werden! ||\n"+ex);
                }
            }
        } 
        catch (Exception e) {
            text.append("Fehler im Code!\n" + e);
        }


    }
}
[/Java]

Das nächste ist dann Database:

[Java]

import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class Database {


    static ArrayList <Disk> disk;
    private int laufende_nr_disk;


    public Database()
    {
        disk = new ArrayList<Disk>();


    }


    public void erfasseDisk(Disk dieDisk)
    {

        disk.add(dieDisk);

    }


    public void auflisten()
    {

       // Liste der CDs ausgeben
      for(int i=0; i<disk.size(); i++)
      {

          System.out.println("Arraynummer: "+i+"\n"); //------------------------
          if(disk.get(i) != null)
          {

              disk.get(i).ausgeben();
              System.out.println();   
          }

      }
    }



      public void Eintragloeschen( int nummer ){

      disk.remove( nummer );

}




}

[/Java]


ich habe auch shcon folgendes gemacht:

Habe die Database einfach von der Menu erben lassen, so konnte ich die text.append ausführen, jedoch hat dann die GUI nicht mehr gestartet, bzw mit fehler:


run:
Exception in thread "main" java.lang.NoClassDefFoundError: gui/Menu
        at gui.Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: gui.Menu
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 1 more
Java Result: 1


----------



## blumenpeter (26. Jan 2010)

scheinbar habe ich eine Lösung gefunden.

habe einfach den Inhalt der methode oder der Database in das Menu übernommen.
So funktoniert es auch, aber trotzdem wäre es auf ne andere Methode besser, da ich dann einiges an Code spare.

naja, wobei ich könnte ja auch in der Menu eine neue Methode schreiben, sodass ich diese einfach nur aufrufe ... wäre nämlich im grunde das selbe nur in hellgrün 

danke für die inspirationen im Forum! man findet in vielen Threads gute hinweise


----------

