tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
546
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xeal xeal ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Ort
    Hannover
    Beiträge
    52
    Hallo Java Gemeinde,

    ich habe diesmal ein komisches Problem wie ich finde. Versuche über eine Methode einen Counter hoch und runter zu setzen, jedoch scheint es so als ob zwei verschiedene Varaiblen angesprochen werden. Kann mir einer eine Tipp geben, stehe irgendwie auf dem Schlauch.

    hier die Methode

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    public class test{
     
    private int count = 0;
     
        public void setCount(int wert,String vorzeichen)
        {
            
            if (vorzeichen.equals("+"))
            {
                count = count + wert;
     
            }else if(vorzeichen.equals("-"))
            {
                count = count - wert;
            }
        }
    }


    Danke schon mal für eure Hilfe.
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Versuche über eine Methode einen Counter hoch und runter zu setzen, jedoch scheint es so als ob zwei verschiedene Varaiblen angesprochen werden.
    Soll ein counter für alle test Objekte existieren. Oder je test Objekt einer?
    Wenn das erstere zutrifft musst du deinen counter als static deklarieren.

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    Hi,

    ich weiss nicht was bei dir der Fehler ist, bei mir laeuft es.

    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
    
    public class Klasse01 extends JFrame {
        
        public static void main(String[] args) {
            Klasse01 k = new Klasse01();
            k.setCount(2,"+");
            k.setCount(1,"-");
            System.out.println(k.getCount());
        }
        
        private int count = 0;
     
        public void setCount(int wert,String vorzeichen)
        {
            
            if (vorzeichen.equals("+"))
            {
                count = count + wert;
     
            }else if(vorzeichen.equals("-"))
            {
                count = count - wert;
            }
        }
        
        public int getCount() {
            return count;
        }
    }
     
    MfG
    illaX

  4. #4
    xeal xeal ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Ort
    Hannover
    Beiträge
    52
    Danke für eure Hilfe. Habs auch nochmal getestet und Funkioniert. Dann muss mein Problem wohl wo anders sein.

    Also ich setze das ganze in einem ActionListener ein. Wenn auf einen Butten gedrückt wird, soll die Methode aufgerufen werden und counter geändert werden.

    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
    
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class MyListener implements ActionListener{
     
        private int count = 0;
        Data data;
        
        public void actionPerformed(ActionEvent arg0) {
                    
            String com = arg0.getActionCommand();
            
            
            if(com.equals("<"))
            {
                setCount(13,"-");
                System.out.println(getCount());
            
            }else if(com.equals(">"))
            {
                setCount(13,"+");
                System.out.println(getCount());
         
            }
        }
        
        public int getCount(){
            return count;
        }
        
        public void setCount(int wert,String vorzeichen){
            
            if (vorzeichen.equals("+"))
            {
                this.count = this.count + wert;
            }else if(vorzeichen.equals("-"))
            {
                this.count = this.count - wert;
            }
        }
    }

    Irgendwie wird dann nicht mit der selben var gerechnet...
     

  5. #5
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    Also an deinem Listner liegt es wohl nicht, denn den haben wir ja jetzt erfolgreich getestet

    Vllt. ein wengi code, wo du ihn verwendest.

    *Edit Ok war zu vorreilig, aber dieser funktioniert einwandfrei.

    Hier mal mein main

    public static void main(String[] args) {
    MyListener myListener = new MyListener();
    myListener.actionPerformed(new ActionEvent(new Object(),0,"<",0));
    myListener.actionPerformed(new ActionEvent(new Object(),0,">",0));
    }

    Ausgabe: 0
    Geändert von illaX (23.01.06 um 14:22 Uhr)
     
    MfG
    illaX

  6. #6
    xeal xeal ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Ort
    Hannover
    Beiträge
    52
    Hier meine Buttons

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
     
        private JButton getButVor(){
            butVor = new JButton();
            butVor.setText(">");
            butVor.addActionListener(new MyListener());
            return butVor;
        }
        
        private JButton getButZurueck(){
            
            butZurueck = new JButton();
            butZurueck.setText("<");
            butZurueck.addActionListener(new MyListener());
            return butZurueck;
        }

    Diese werden dann meinem Frame im TableLayout platziert

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
            frame = new JFrame();
            frame.getContentPane();
            frame.setSize(600,500);
            
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new TableLayout(size));
            frame.add(getButLaden(),"2,30,11,2");
            frame.add(getButEnde(),"26,36,30,2");

    Mehr passiert so eigentlich nicht.

    Muss ich mir bei Swing irgendwie aktuelle Referenzen zurückgeben lassen? Wenn ja wie? Weiß sonst nicht wo der Fehler ist
     

  7. #7
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    OK Fehler geufnden.
    Du weisst beiden Buttons ein neues Object hinzu...

    Entweder du erzeugst ein Attribut von deinen Listener und weisst dieses zu, was ich sinvoller finde. Oder du machst das attribut statisch, dafuer kannst du den Listener nur einmal verwenden (ist nicht gerade OOP freundlich)
     
    MfG
    illaX

  8. #8
    xeal xeal ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Ort
    Hannover
    Beiträge
    52
    Kannste mir ein Beipsiel geben wie ich ein Attribut erzeugen soll für meinen Listener?

    ** edit **

    Ok habs hinbekommen

    Instanz erzeugen

    Code :
    1
    
    MyListener navigation = new MyListener();

    Zuweisen der Instanz des ActionListener

    Code :
    1
    
    butZurueck.addActionListener(navigation);

    Vielen Dank für deine schnelle Hilfe
    Geändert von xeal (23.01.06 um 14:34 Uhr)
     

  9. #9
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    OK habe mich wohl sehr schlecht ausgedrueckt. Lege zum Beispiel ein Objectattribut an.

    private MyListener myListener;

    und initialisiert du das im Konstruktor

    myListener = new MyListener;

    und adden

    ind den Methoden getButVor() und getButZurueck

    button.addActionListener(myListener);

    anstatt

    button.addActionListener(new MyListener());
     
    MfG
    illaX

  10. #10
    illaX illaX ist offline Mitglied Brokat
    Registriert seit
    Jan 2004
    Ort
    Konstanz
    Beiträge
    268
    dann setz den Status bitte auf erledigt

    *das wollte ich schon immer mal sagen *
     
    MfG
    illaX

Ähnliche Themen

  1. JavaScript Subtraktion
    Von BolleF1 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 21.01.11, 15:03
  2. Subtraktion
    Von psychomama im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 29.08.10, 18:28
  3. Matrizen Subtraktion in C
    Von RuhrBoy im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 25.11.09, 11:57
  4. Subtraktion von Gleitkommazahlen?
    Von hanni6al im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 08.05.09, 20:09
  5. MS Excel subtraktion
    Von to_be im Forum Office-Anwendungen
    Antworten: 6
    Letzter Beitrag: 27.02.04, 08:17