» »

java pomoč, verjetno event handler

java pomoč, verjetno event handler

i33a ::

Napisal sem program v Javi(Eclipse) z GUI,
Najprej sem naredil grafiko (z jRadioButtn-i, in jLabel-i, ter z jButtnom).
Potem sem z if stavki dodal vsoti določeno vrednost npr.
 if(button10.isSelected()){
		vsota +=178.33;
	}
	else {
		vsota += 0;

na koncu moram še izpisati vsoto na zaslon, nekje sem videl da bi to lahko storil z eventHandlerjem, vendar o event handlerju nimam pojma. Rad bi čim enostavnejšo rešitev. Kako naj to naredim?

nightrage ::

Ja če hočes, da se ti ob kliku na gumb nekaj naredi potem moraš na gumb dodati dogodek oz. Actionlistener.

button.addActionListener(new ActionListener() {               
            public void actionPerformed(ActionEvent e)
            {
                //napisi kodo, ki se izvrši od kliku na gumb
                System.out.println("You clicked the button");
            }
        });   

i33a ::

nightrage, hvala za pomoč vendar ne razumem popolnoma...
kako naj naredim???
ali naj if stavke ki dodajajo vsoti neko vrednost dam tam kjer si napisal "//napisi kodo, ki se izvrši od kliku na gumb" nato pa dodam še
JOptionPane.showMessageDialog(null, total);

Prosim, a ti lahko pošljem kodo na ZS in mi ti napišeš teh nekaj vrstic ter mi pošlješ nazaj ker se mi zdi da bom tako najlažje razumel?

Nuke_H2 ::

i33a lahko pa narediš tudi metodo:


class Blabla implements ActionListener {
   private JButton b1;
   private JButton b2;
   .
   .
   .
   public Blabla(){
       b1=new JButton();
       b1.addActionListener(this);
       .
       .
       .
   }
   public void actionPerformed(ActionEvent e){
      
      Object source=e.getSource();

           if(source==b1){
               vsota +=178.33;
           }
           if(source==b2){
               System.out.println("bubububu");
           }
           .
           .
           .
           else{
               vsota+=0;
           }
    }

}

i33a ::

Nuke H2, bom probal, zanima me samo ali naj to metodo naredim v main clasu ali v podrazredu?

Nuke_H2 ::

Vseeno kje, tam kjer boš pač čaku na evente, lahko nardiš čist posebn class, pa pol na gumb tkole obesiš actionListener-ja

b1.addActionListener(new Dogodki());  //Dogodki je razred kjer čakaš na evente.

i33a ::

Nuke H2 hvala zdej to deluje :) , ampak total je vedno 0.0, kaj je narobe?
Koda ki naj bi dodala vrednost spremenljivki total... Je tukaj kaj narobe ali je mogoče problem drugje?

if(b1.isSelected() && b3.isSelected()){
	total += 65.74;
}
else if(b1.isSelected() && b4.isSelected()){
	total += 18;
}
else if(b2.isSelected() && b3.isSelected()){
	total += 100;
}
else if(b2.isSelected() && b4.isSelected()){
	total += 2.6;
}

else {
	total += 0;
}

if(b5.isSelected()){
	total+=5.6;
}
else if(b6.isSelected()){
	total +=4.1;
}
else if(b7.isSelected()){
	total +=2.3;
}
else if(b8.isSelected()){
	total+=21.56;
}
else {
	total += 0;
}

if(b10.isSelected()){
	total +=30.17;
}
else {
	total += 0;
}
if (b12.isSelected()){
	total += 2.4;
}
else if(b13.isSelected()){
	total += 7.7;
}

else {
	total += 0;
}
if(b15.isSelected()){
	total += 5.1;
}
else if(b16.isSelected()){
	total += 4.5;
}
else if(b17.isSelected()){
	total += 59.7 ;
}
else if(b18.isSelected()){
	total += 7.05;
}
else if(b19.isSelected()){
	total += 89.89;
}
else if(b20.isSelected()){
	total += 3.61;
}
else if(b21.isSelected()){
	total += 1.04;
}
else{
	total += 0;
	
}

if (b23.isSelected()){
	total += 10;
}
else{
	total+=0;
}

Nuke_H2 ::

Probaj odstraniti:


else { 
   total+=0 
}


ker nimajo nobenega pomena...

Zgodovina sprememb…

  • spremenil: Nuke_H2 ()

i33a ::

odstranil sem vse
else {
total+=0
}

vendar nič ne pomaga, še vedno je total =0.0;

Nuke_H2 ::

kje pa deklariraš total?


class Dek{
    static duble total=0.0;
 
    public Dek(){
    
    }
}



deklariraš tako ali kako drugače?

i33a ::

Double total deklariram takoj za imenom razreda:
public class Gui  extends JFrame{

	static double total=0.0;
	


tako kot si napisal...

Nuke_H2 ::

pošlji mi source na zs...

Chandler258 ::

Ko izračunaš vsoto jo moreš prikazat na JLabel-u. Nekaj v stilu:
label.setText(vsota);

Če uporabljaš kako staro Javo boš mogoče moral dat cifro v string ročno:
label.setText(Double.toString(vsota));


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

java net beans pomoč

Oddelek: Programiranje
121600 (1488) i33a
»

[Java] Zagon appleta v HTML

Oddelek: Programiranje
161539 (1361) Bela01
»

[JAVA] branje iz datoteke

Oddelek: Programiranje
242406 (2041) Bela01
»

[Java]Vprašanja

Oddelek: Programiranje
242103 (1571) Bela01
»

[java] opcijsko okno

Oddelek: Programiranje
102071 (1852) infiniteLoop

Več podobnih tem