Java: For-Schleife wird übersprungen
Hallo zusammen
Ich habe wieder einmal ein Problem :-S
Ich wollte einen Rechner in Java programmieren, jedoch bleibe ich schon beim anfänglichen Problem hängen, dass aus mir schleierhaften Gründen die For-Schleife übersprungen wird.
Der Code sieht so aus:
Vielen Dank für die Hilfe
Gruss Gansterjo2
Ich habe wieder einmal ein Problem :-S
Ich wollte einen Rechner in Java programmieren, jedoch bleibe ich schon beim anfänglichen Problem hängen, dass aus mir schleierhaften Gründen die For-Schleife übersprungen wird.
Der Code sieht so aus:
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class rechnercore {
public static void main (Stringargs){
String rechnung;
for(rechnung = ""; rechnung == "exit"; System.exit(0)){
JTextField eingabe = new JTextField();//Definition des Eingabefeldes
JOptionPane pane = new JOptionPane(eingabe, JOptionPane.OK_OPTION);
pane.createDialog(null, "Rechner").setVisible(true);
//System.out.println("Eingabe: " + eingabe.getText());//Ausgabe-Text
rechnung = eingabe.getText();//Umfüllen der Eingabe von der grafischen Oberfläche in eine neue Variable
System.out.println("test" + rechnung);
};
};
};
Vielen Dank für die Hilfe
Gruss Gansterjo2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245958
Url: https://administrator.de/contentid/245958
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
10 Kommentare
Neuester Kommentar
Achso, dass soll eine Art Endlosschleife sein. Die soll solange laufen bis du deine Eingabe getätigt hast. Für eine grafische oberfläche fehlt da auch noch einiges.
Ein Frame mit einen Layout-Manager. Da braucht man solche spielereien wie diese Schleife nicht. Das ganze sollte nachdem "MVC Prinzip" gemacht werden. Oder zu mindest einen Controller und eine View.
Anbei mal was aus alten Projekten:
Klasse controller
Klasse view:
Ein Frame mit einen Layout-Manager. Da braucht man solche spielereien wie diese Schleife nicht. Das ganze sollte nachdem "MVC Prinzip" gemacht werden. Oder zu mindest einen Controller und eine View.
Anbei mal was aus alten Projekten:
Klasse controller
package Fenster;
import java.awt.*;
public class Controller implements ActionListener, WindowListener,MouseListener,KeyListener{
view myView;
boolean buttonlinks=true;
public Controller() { //Konstruktor
myView = new view();
myView.Change.addActionListener(this);
myView.Change.addMouseListener(this);
myView.Ende.addActionListener(this);
myView.myFenster.addWindowListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Change")){
myView.myFenster.setTitle(JOptionPane.showInputDialog("Titel?"));
}
if(e.getActionCommand().equals("Ende")){
System.exit(0);
}
}
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent arg0) {
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public static void main(String args) {
new Controller();
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
if(buttonlinks==true){
myView.Change.setBounds(300,100,50,50);
buttonlinks=false;
}
else if(buttonlinks==false){
myView.Change.setBounds(50,100,50,50);
buttonlinks=true;
}
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
Klasse view:
package Fenster;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class view {
Frame myFenster = new Frame();
Button Change = new Button("Change");
Button Ende = new Button("Ende");
public view() {
myFenster.setTitle ("Meine erste Applikation");
myFenster.setLayout(new FlowLayout());
myFenster.setSize(400,200);
myFenster.add(Change);
myFenster.add(Ende);
myFenster.setVisible(true);
}
}
Zitat von @Gansterjo2:
Ich kann natürlich auch die For-Schleife auskommentieren und dann habe ich zwar ein Interface, jedoch ist das Problem, sobald
ich dann den 'ok'-Knopf drücke, wird die Applikation beendet und nicht mehr weitergeführt...
Ich kann natürlich auch die For-Schleife auskommentieren und dann habe ich zwar ein Interface, jedoch ist das Problem, sobald
ich dann den 'ok'-Knopf drücke, wird die Applikation beendet und nicht mehr weitergeführt...
Das liegt daran, dass deine main-methode danach zu ende ist. In meinem Programm, erzeuge ich ein objekt vom controller und im controller ein objekt von der Klasse view. Solange die objekte nicht vernichtet werden, oder das Programm nirgendwo in ein System.Exit geht, läuft es weiter.