tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
855
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    hallo leibe leutz,

    habe folgendes problem

    private void ergebnis_actionPerformed(ActionEvent e)
    {

    a=feld1.getText();
    b=feld2.getText();
    c=a+b;

    feld3.setText(c);
    }

    a,b und c habe ich oben als integer deklariert, bei c soll mit a und b gerechnet werden und dieses ergebnis bei feld3 ausgeben werden, leider weis ich nicht wo mein fehler liegt da es nicht funktioniert und die rechnung soll beim anklicken des button passieren

    ich hoffe mir kann jemand helfen, ist bestimmt ganz einfach zu beheben das problem, ich stell mich mal wieder dumm an

    danke im voraus

    euer christoph
     

  2. #2
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    Hallo,

    bei solchen Fehlern lasse ich mir immer die Werte, die zur Zeit in den einzelnen Variablen stecken, ausgeben...
    Das könnte dann so aussehen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    private void ergebnis_actionPerformed(ActionEvent e)
    {
      System.out.println("1. a: "+a+" b: "+b+" c: "+c);
      
      a=feld1.getText();
      b=feld2.getText();
      c=a+b;
      
      System.out.println("2. a: "+a+" b: "+b+" c: "+c);
      
      feld3.setText(c);
    }

    auf diese Weise lassen sich schon viele Fehler entdecken!
    Ich hoffe, ich habe keine Fehler eingebaut

    Gruß
     

  3. #3
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    die variablen haben ja noch gar keine wert, die werden ja erst in eintextfeld eingeben und das ausgelesen mit a=feld1.getText();
    ich weis echt nicht wo mein fehler ist

    Error(139,18): incompatible types; found: java.lang.String, required: int
    Error(140,18): incompatible types; found: java.lang.String, required: int
    Error(144,9): method setText(int) not found in class javax.swing.JTextField

    diese drei sachen schreibt er mir

    private void ergebnis_actionPerformed(ActionEvent e)
    {


    zeile 139 a=feld1.getText();
    zeile 140 b=feld2.getText();

    zeile 144 c=a+b;

    feld3.setText(c);
    }

    wyatt dein vorschlag ist nicht schlecht aber ich weis ja wo der fehler liegt aber ich weis nicht wie es richtig aussehn muss, ich prog mit dem Jdeveloper 11g
     

  4. #4
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    Na da haben wir doch den Fehler...

    getText(); liefer Strings zurück
    setText(); kann nur Strings annehmen

    ich habe eben etwas ausprobiert und ich würde das Problem so lösen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    private void ergebnis_actionPerformed(ActionEvent e)
    {
    String s;
    a= Integer.parseInt(feld1.getText());
    b= Integer.parseInt(feld2.getText());
    c=a+b;
    s= ""+c;
     
    feld3.setText(s);
    }

    Die Typen mussten nur gewandelt werden

    Hoffe, das hilft dir weiter
    Gruß
     

  5. #5
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    das integer.parseint wandelt denn wert in eine integer um oder?

    und was mach dann s=" "+c; kann man das nicht weglassen

    vielen vielen vielen dank wyatt (bist der größte )
     

  6. #6
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    das integer.parseint wandelt denn wert in eine integer um oder?

    und was mach dann s=" "+c; kann man das nicht weglassen
    Ja genau, Integer.parseInt(); wandelt es in einen Int... es gibt noch weitere dieser parse-methoden, die solltest du beherrschen... google einfach mal danach

    Ich habe gerade Integer.toString(); gefunden... vielleicht funktioniert das... teste es einfach mal aus!
    Code :
    1
    
    s = Integer.toString(c);

    Gruß
     

  7. #7
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    danke das programm funktioniert, nun habe ich noch eine frage habe mein prog erweitert und zwar kann man jetzt aus suchen womit gerechnet werden soll + - * oder / das habe ich durch eine combobox realisiert nur wie kann ich es jetzt auslesen und ihm sagen das er mit diesem zeichen rechnen soll

    habe schon gegoogelt aber nicht wirklich was sinnvolles gefunden

    danke noch mal im voraus
     

  8. #8
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    Du kannst dir den markierten Operator (in deinem Fall) zurückliefern lassen mit der Methode getSelectedItem(); und dann mit einer switch-case Anweisung die Rechenmethode bestimmen

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    char op = (char)combobox.getSelectedItem();
     
    switch(op) {
      case '+' : c = a + b;
         break;
      case '-': c = a - b;
         break;
    }

    Ich hoffe, das Beispiel funktioniert so... bin mir beim Cast nach char etwas unsicher!

    Gruß
     

  9. #9
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    ja hast recht das mit dem cast ist falsch er schreibt mir:

    Error(144,11): cannot cast java.lang.Object to char
     

  10. #10
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    ja, das dachte ich mir schon...
    versuchen wir es mit einem String

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    
    String op = (String)combobox.getSelectedItem();
     
    switch(op) {
      case + : c = a + b;
         break;
      case -: c = a - b;
         break;
    }

    Gruß
     

  11. #11
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    leider meckert auch dann rum er sagt mir:

    Error(150,10): incompatible types; found: java.lang.String, required: int

    an der stelle 150,10 steht das (op)
     

  12. #12
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    hmmm...
    versuch mal immer
    Code java:
    1
    2
    3
    4
    
    case '+': ...........
       break;
    case '-': .........
       break;

    Gruß
     

  13. #13
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    das geht leider auch nicht, ich füge am besten mal den ganzen quellcode an vielleicht gibt es dann einen besseren überblick was falsch ist an den letzten zeilen


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    
    package client;
    import javax.swing.JFrame;
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JToolBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import java.awt.Rectangle;
    import javax.swing.JComboBox;
     
    public class grund extends JFrame 
    {
      int a;
      int b;
      int c;
      
      private ImageIcon imageHelp = new ImageIcon(grund.class.getResource("help.gif"));
      private ImageIcon imageClose = new ImageIcon(grund.class.getResource("closefile.gif"));
      private ImageIcon imageOpen = new ImageIcon(grund.class.getResource("openfile.gif"));
      private JButton buttonHelp = new JButton();
      private JButton buttonClose = new JButton();
      private JButton buttonOpen = new JButton();
      private JToolBar toolBar = new JToolBar();
      private JLabel statusBar = new JLabel();
      private JMenuItem menuHelpAbout = new JMenuItem();
      private JMenu menuHelp = new JMenu();
      private JMenuItem menuFileExit = new JMenuItem();
      private JMenu menuFile = new JMenu();
      private JMenuBar menuBar = new JMenuBar();
      private JPanel panelCenter = new JPanel();
      private BorderLayout layoutMain = new BorderLayout();
      private JTextField feld1 = new JTextField();
      private JTextField feld2 = new JTextField();
      private JTextField feld3 = new JTextField();
      private JButton ergebnis = new JButton();
      private JComboBox auswahl = new JComboBox(new Object[]{"+","-","*","/" });
      
       
     
      public grund()
      {
        try
        {
          jbInit();
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
     
      }
     
      private void jbInit() throws Exception
      {
      
      
      
        this.setJMenuBar(menuBar);
        this.getContentPane().setLayout(layoutMain);
        panelCenter.setLayout(null);
        feld1.setText("jTextField1");
        feld1.setBounds(new Rectangle(30, 35, 195, 30));
        feld2.setText("jTextField2");
        feld2.setBounds(new Rectangle(30, 80, 200, 30));
        feld3.setText("jTextField3");
        feld3.setBounds(new Rectangle(30, 185, 205, 25));
        ergebnis.setText("Rechnen");
        ergebnis.setBounds(new Rectangle(90, 135, 85, 30));
        ergebnis.addActionListener(new ActionListener()
          {
            public void actionPerformed(ActionEvent e)
            {
              ergebnis_actionPerformed(e);
            }
          });
        auswahl.setBounds(new Rectangle(270, 65, 80, 30));
        this.setSize(new Dimension(400, 300));
        menuFile.setText("File");
        menuFileExit.setText("Exit");
        menuFileExit.addActionListener(new ActionListener()
          {
            public void actionPerformed(ActionEvent ae)
            {
              fileExit_ActionPerformed(ae);
            }
          });
        menuHelp.setText("Help");
        menuHelpAbout.setText("About");
        menuHelpAbout.addActionListener(new ActionListener()
          {
            public void actionPerformed(ActionEvent ae)
            {
              helpAbout_ActionPerformed(ae);
            }
          });
        statusBar.setText("");
        buttonOpen.setToolTipText("Open File");
        buttonOpen.setIcon(imageOpen);
        buttonClose.setToolTipText("Close File");
        buttonClose.setIcon(imageClose);
        buttonHelp.setToolTipText("About");
        buttonHelp.setIcon(imageHelp);
        menuFile.add(menuFileExit);
        menuBar.add(menuFile);
        menuHelp.add(menuHelpAbout);
        menuBar.add(menuHelp);
        this.getContentPane().add(statusBar, BorderLayout.SOUTH);
        toolBar.add(buttonOpen);
        toolBar.add(buttonClose);
        toolBar.add(buttonHelp);
        this.getContentPane().add(toolBar, BorderLayout.NORTH);
        panelCenter.add(auswahl, null);
        panelCenter.add(ergebnis, null);
        panelCenter.add(feld3, null);
        panelCenter.add(feld2, null);
        panelCenter.add(feld1, null);
        this.getContentPane().add(panelCenter, BorderLayout.CENTER);
      }
     
      void fileExit_ActionPerformed(ActionEvent e)
      {
        System.exit(0);
      }
     
      void helpAbout_ActionPerformed(ActionEvent e)
      {
        JOptionPane.showMessageDialog(this, new grund_AboutBoxPanel1(), "About", JOptionPane.PLAIN_MESSAGE);
      }
     
      private void ergebnis_actionPerformed(ActionEvent e)
      {
      String s;
      a=Integer.parseInt(feld1.getText());
      b=Integer.parseInt(feld2.getText());
      
      String op=(String) auswahl.getSelectedItem();
      switch(op) {
      case '+' : ;
         break;
      case '-': c = a - b;
         break;
      case '*': c=a*b;
        break;
      case '/': c=a/b;
        break;
    }
      
      s=" "+c;
      
      feld3.setText(s);
      }
    }

    hoffe jemand entdeckt den fehler

    danke im voraus
     

  14. #14
    Wyatt Wyatt ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    128
    ok, das nächste mal denke ich erst und schreibe dann, hehe

    wir lösen das problem einfach mit einer if-verschachtelung, das habe ich ebe nselbst ausprobiert und es hat geklappt

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    public void cbActionPerformed(ActionEvent evt) {
        String s = (String)jComboBox1.getSelectedItem();
        
        if(s.equals("+"))
          jTextField1.setText("PLUS");
          else if(s.equals("-"))
            jTextField1.setText("MINUS");
            else if(s.equals("*"))
              jTextField1.setText("MAL");
              else if(s.equals("/"))
                jTextField1.setText("DURCH");
                else
                  jTextField1.setText("ERROR");
      }

    Gruß
     

  15. #15
    Avatar von chrisjahl
    chrisjahl chrisjahl ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    101
    ja das klappt, er schreibt auf den button das was ich ausgewählt habe, wollte aber das a und b rechnet mit dem zeichen

    habe es versucht indem ich nach der ersten if anweisung ( also + anweisung)
    die rechnung c=a+b; angefügt habe, selbst da meckert rum obwohl das richtig ist
     

Ähnliche Themen

  1. JTabbedPanel + Label.setText funktionieren nicht
    Von licht400 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 12
    Letzter Beitrag: 26.11.08, 07:43
  2. SWT Browser setText
    Von kleene0105 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 13.06.08, 10:14
  3. JTextArea führt setText() nicht aus
    Von Nadzieja im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 19.06.07, 21:03
  4. statusbar SetText mit 2 IDS texten
    Von matriNET im Forum VisualStudio & MFC
    Antworten: 22
    Letzter Beitrag: 19.09.05, 06:49
  5. SetText
    Von thos im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 17.06.04, 13:33