Hi, ich hab ein kleines Problem mit Exceptions. Wenn ich aus JMenuBar new auswähle, dann erscheint ein neues Fenster, wo ich eine Zahl eingeben kann. Wenn die Eingabe falsch ist, dann wird ein JOptionmessage einmal angezeigt, dass die Angabe falsch war.
Mit dem unteren Button kann ich dieses Fenster schließen.Wenn ich aber das gleiche nochmal mache, dann wird JOptionmessage schon zweimal angezeigt.
Ich weiß nicht ganz genau wie ich dieses Problem lösen soll.
Ich vermute, dass es daran liegt, dass wenn ich das new Fenster öffne, dann wird ein Listener hinzugefügt.Wenn ich das nochmal mache, dann wird wieder der Listener hinzugefügt,
und es werden zwei mal die JOptionsFenster angezeigt etc.
Kann mir bitte jemand helfen? (Es wäre nett wenn jemand einfach den Quellcode berichtigt und vielleicht eine Beschriftung hinschreibt.)
Vielen Dank im Voraus!!!
Mit dem unteren Button kann ich dieses Fenster schließen.Wenn ich aber das gleiche nochmal mache, dann wird JOptionmessage schon zweimal angezeigt.
Ich weiß nicht ganz genau wie ich dieses Problem lösen soll.
Ich vermute, dass es daran liegt, dass wenn ich das new Fenster öffne, dann wird ein Listener hinzugefügt.Wenn ich das nochmal mache, dann wird wieder der Listener hinzugefügt,
und es werden zwei mal die JOptionsFenster angezeigt etc.
Kann mir bitte jemand helfen? (Es wäre nett wenn jemand einfach den Quellcode berichtigt und vielleicht eine Beschriftung hinschreibt.)
Vielen Dank im Voraus!!!
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Fwindow extends JFrame {
JFrame frame = new JFrame();
static JTextField tj = new JTextField();
static JTextField tj2 = new JTextField();
static JButton button = new JButton("L");
Fwindow(){}
Fwindow(int number){
frame.setTitle("Window");
frame.setSize(600,500);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLayout(null);
Toolkit toolkit = getToolkit();
Dimension size = toolkit.getScreenSize();
frame.setLocation(size.width/2 - frame.getWidth()/2,size.height/2 - frame.getHeight()/2);
button.setBounds(40,370,100,60);
button.setBorder(BorderFactory.createRaisedBevelBorder());
frame.add(button);
tj.setBounds(290,120,100,25);
frame.add(tj);
JLabel label = new JLabel("Summe :");
label.setBounds(146,120,135,25);
label.setFont(new Font( "",Font.PLAIN, 14));
frame.add(label);
JLabel label2 = new JLabel ("Ergebnis :");
label2.setFont(new Font( "",Font.PLAIN, 14));
label2.setBounds(146,170,170,25);
frame.add(label2);
tj2.setBounds(290,170,100,25);
tj2.setFont(new Font( "",Font.PLAIN, 14));
frame.add(tj2);
button.addActionListener(new ActionDE());
JMenuBar menubar= new JMenuBar();
frame.setJMenuBar(menubar);
JMenu File = new JMenu("new");
File.setMnemonic(KeyEvent.VK_O);
menubar.add(File);
JMenuItem r = new JMenuItem("new");
File.add(r);
r.addActionListener(new ActionKurs());
}
static class ActionDE implements ActionListener{
public void actionPerformed(ActionEvent e) {
double zahl=0;
try{
String a = tj.getText();
float b = Float.parseFloat(a);
if( e.getSource() == button){
Swindow y = new Swindow(); // { inaczej dziwny problem
zahl = b * y.zur();
}
String s = String.valueOf( zahl );
tj2.setText(s);
}catch(NumberFormatException er){
JOptionPane.showMessageDialog (null, "Fehler", "Fehler", 1);
}}}
static class ActionKurs implements ActionListener{
public void actionPerformed(ActionEvent e) {
Swindow x = new Swindow(3);
}}}
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Swindow extends Fwindow {
static double variable = 3;
static JFrame f = new JFrame();
static JTextField text = new JTextField("");
static JButton button = new JButton("change");
static JButton buttonclose = new JButton("");
static JLabel ar = new JLabel();
Swindow(){}
Swindow(int number){
f.setTitle("new");
f.setSize(400,400);
f.setResizable(false);
f.setVisible(true);
f.setLayout(null);
Toolkit toolkit = getToolkit();
Dimension size = toolkit.getScreenSize();
f.setLocation(size.width/2 - f.getWidth()/2,size.height/2 - f.getHeight()/2);
text.setBounds(153,65,45,25);
f.add(text);
button.setBounds(210,65,100,25);
f.add(button);
button.addActionListener(new Actionkurs());
buttonclose.setBounds(310,330,60,30);
buttonclose.setBorder(BorderFactory.createBevelBorder(getDefaultCloseOperation(), Color.red , Color.blue));
f.add(buttonclose);
buttonclose.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent ev ) {
f.dispose();
// f.setVisible(false);
} } );
}
static class Actionkurs implements ActionListener{
public void actionPerformed(ActionEvent e) {
double b;
try{
String a = text.getText();
b = Double.parseDouble(a);
text.setText(a);
variable = b;
}catch(NumberFormatException er){
Icon bee1 = new ImageIcon("error.png");
JOptionPane.showMessageDialog (null, "Fehler", "Fehler", 1 , bee1);
}}}
public double zur(){
return variable;
}}
Java:
public class First {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Fwindow mkr = new Fwindow(2);
}
}