Hallo,
ich programmiere gerade für ein Schulprojekt ein Programm welches am Ende ein Diagramm ausgeben soll.
Ich habe aber gerade ein Problem mit dem Scanner welcher einige vom Nutzer eingegebene Werte in der Konsole auslesen soll.
Wird dieser von dem Actionlistener der ersten Klasse aufgerufen steht dort (in der Konsole), dass das Programm laufen muss damit eine Eingabe erfolgen kann(Can only enter input while your programm is running).
Also die Konsole öffnet sich aber es erscheint nur der Text der ersten Konsolenausgabe(Eins
.
Es funktioniert alles wie es soll wenn ich die Methode per Hand oder durch eine andere Klasse aufrufe.
Klasse mit dem actionlistener:
Klasse mit dem Scanner.
ich programmiere gerade für ein Schulprojekt ein Programm welches am Ende ein Diagramm ausgeben soll.
Ich habe aber gerade ein Problem mit dem Scanner welcher einige vom Nutzer eingegebene Werte in der Konsole auslesen soll.
Wird dieser von dem Actionlistener der ersten Klasse aufgerufen steht dort (in der Konsole), dass das Programm laufen muss damit eine Eingabe erfolgen kann(Can only enter input while your programm is running).
Also die Konsole öffnet sich aber es erscheint nur der Text der ersten Konsolenausgabe(Eins
Es funktioniert alles wie es soll wenn ich die Methode per Hand oder durch eine andere Klasse aufrufe.
Klasse mit dem actionlistener:
Java:
import java.awt.Window;
import javax.swing.*;
import java.awt.*;
//Event brauchen wir für das Ereigniss, wenn ein Button geklickt wird
import java.awt.event.*;
public class Start extends JFrame{
private JButton button1;
private JButton button2;
private JButton button3;
private JPanel panelButton;
private JLabel oben;
private JLabel anzeige;
public Start(){
super("Fenster");
setLocation(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Das BorderLayout ist mal das erste - später fügen wir noch ein GridLayout im Westen hinzu
getContentPane().setLayout(new BorderLayout(5,5));
//Buttons erzeugen
button1 = new JButton("Einen Graphen zeichnen");
button2 = new JButton("Zwei Graphen zeichnen");
button3 = new JButton("Hilfe");
//Panels erzeugen auf einem GridLayout
panelButton = new JPanel(new GridLayout(3,1));
//Auf Panel Buttons packen
panelButton.add(button1);
panelButton.add(button2);
panelButton.add(button3);
//Listener für Buttons
addButtonListener(button1);
addButtonListener(button2);
addButtonListener(button3);
//Labels erzeugen
oben = new JLabel("Start");
//Label zentrieren
oben.setHorizontalAlignment(JLabel.CENTER);
anzeige = new JLabel("Button klicken");
//Labels auf Frame packen (direkt auf das BorderLayout)
getContentPane().add(BorderLayout.NORTH, oben);
getContentPane().add(anzeige);
//Panels auf Frame packen (das panelButton hat ein GridLayout, dass jetzt in den WestBereich des BorderLayouts kommt)
getContentPane().add(BorderLayout.WEST, panelButton);
pack();
setVisible(true);
}
private void addButtonListener(JButton b){
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
eingabe(ae.getActionCommand());
}
});
}
private void eingabe(String a){
if(a=="Einen Graphen zeichnen"){
EinenGraphen gra1 = new EinenGraphen();
gra1.eingabe();
}
if(a=="Zwei Graphen zeichnen"){
ZweiGraphen gra2 = new ZweiGraphen();
}
if(a=="Hilfe"){
Hilfe hilfe = new Hilfe();
}
}
}
Klasse mit dem Scanner.
Java:
import java.util.Scanner;
public class EinenGraphen
{
public double eins;
public double zwei;
public double drei;
public double vier;
private Scanner s = new Scanner (System.in);
public void eingabe()
{
System.out.print('\u000C');
System.out.println("Eins:");
eins = s.nextDouble();
System.out.println("Zwei:");
eins = s.nextDouble();
System.out.println("Drei:");
eins = s.nextDouble();
System.out.println("Vier:");
eins = s.nextDouble();
Rechnung r1 = new Rechnung();
r1.iterativ(); //später werte übergeben
}
}