Counter Label Button

  • Themenstarter sehrVerzweifelterStudent
  • Beginndatum
Diskutiere Counter Label Button im Java Basics - Anfänger-Themen Bereich.
S

sehrVerzweifelterStudent

Hallo zusammen :)

Ich möchte folgendes Umsetzen: Wenn man auf einen Button clickt, soll der Counter um 1 hochgehen.
Dies soll auf einen JLabel sichtbar gemacht werden.

mein aktueller Code:
Java:
public class myPanel extends JPanel implements something {

    JCheckBox checkBx;
    JButton plusButton;
    JButton minusButton;
    JLabel myLabel;

    public UpperPanel(List<Something> something) {
        checkBx = new JCheckBox("ShowMore");
        add(checkBx);
       
        plusButton = new JButton("+");
        add(plusButton);
       
        minusButton = new JButton("-");
        add(minusButton);
       
        myLabel = new JLabel("Score: " + OtherClass.score);
       
        plusButton.setVisible(false);
        minusButton.setVisible(false);
       
        checkBx.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(!checkBx.isSelected()) {
                    plusButton.setVisible(false);
                    minusButton.setVisible(false);
                    myLabel.setVisible(false);
                }
                else if(checkBx.isSelected()) {
                    plusButton.setVisible(true);
                    minusButton.setVisible(true);
                    myLabel.setVisible(true);
                }
            }  
        });
       
//HIER WIRDS WICHTIG:

        plusButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {

                myLabel = new JLabel("Score: " + OtherClass.score + 1);
                add(myLabel);

            }
           
        });
        add(myLabel);

    }
}
Das Problem:
Der Score wird mit System.out.print "geupdatet" jedoch nicht auf dem JLabel an sich.
ich habs auch schon mit OtherClass.score++ o.ä. versucht.


VLG
 
L

lam_tr

Hi ich hätte auf anhieb so gesagt

Code:
public class myPanel extends JPanel implements something {

    JCheckBox checkBx;
    JButton plusButton;
    JButton minusButton;
    JLabel myLabel;

    public UpperPanel(List<Something> something) {
        checkBx = new JCheckBox("ShowMore");
        add(checkBx);
      
        plusButton = new JButton("+");
        add(plusButton);
      
        minusButton = new JButton("-");
        add(minusButton);
      
        myLabel = new JLabel("Score: " + OtherClass.score);
      
        plusButton.setVisible(false);
        minusButton.setVisible(false);
      
        checkBx.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(!checkBx.isSelected()) {
                    plusButton.setVisible(false);
                    minusButton.setVisible(false);
                    myLabel.setVisible(false);
                }
                else if(checkBx.isSelected()) {
                    plusButton.setVisible(true);
                    minusButton.setVisible(true);
                    myLabel.setVisible(true);
                }
            } 
        });
      
//HIER WIRDS WICHTIG:

        plusButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                myLabel.setText("Score: " + (++OtherClass.score));
            }
          
        });
        add(myLabel);

    }
}
 
MoxxiManagarm

MoxxiManagarm

Java:
if(!checkBx.isSelected()) {
  plusButton.setVisible(false);
  minusButton.setVisible(false);
  myLabel.setVisible(false);
} else if(checkBx.isSelected()) {
  plusButton.setVisible(true);
  minusButton.setVisible(true);
  myLabel.setVisible(true);
}
Ich weiß das hat nichts mit deiner Frage zu tun, aber solche Konstrukte kann ich einfach nicht sehen ;D

Das oben ist äquivalent zu
Java:
plusButton.setVisible(checkBx.isSelected());
minusButton.setVisible(checkBx.isSelected());
myLabel.setVisible(checkBx.isSelected());
 
S

sehrVerzweifelterStudent

Oh ja da hast du natürlich recht @MoxxiManagarm hahhaa danke! Noch eine Frage: Wie kann ich das umsetzen:

myLabel.setText("Score: " + (++(OtherClass.score*100)));

Also ich möchte den Score in % angeben und liegt mir unter OtherClass.score als z.B. 0.03 vor. Daher möchte ich ihn erst mit 100 Multiplizieren und anschließend wie gewohnt um 1 erhöhen. Allerdings gibt mir der compiler diese Meldung:
Invalid argument to operation ++/--
hat jemand ne Idee? :)

LG
 
S

sehrVerzweifelterStudent

Oh ja da hast du natürlich recht @MoxxiManagarm hahhaa danke! Noch eine Frage: Wie kann ich das umsetzen:

myLabel.setText("Score: " + (++(OtherClass.score*100)));

Also ich möchte den Score in % angeben und liegt mir unter OtherClass.score als z.B. 0.03 vor. Daher möchte ich ihn erst mit 100 Multiplizieren und anschließend wie gewohnt um 1 erhöhen. Allerdings gibt mir der compiler diese Meldung:
Invalid argument to operation ++/--
hat jemand ne Idee? :)

LG
Nevermind, ich habs von Grund auf auf Zahlen zwischen 0 und 100 anstatt 0 und 1 geändert, jetzt passt alles :) Danke nochmal!!!
 
Thema: 

Counter Label Button

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben