i've been stuck @ couple of days (first time working multiple actionlistener
, bear me).
i have 2 buttons, each actionlistener moving drawing either left or right.
yet either actionlisteners not seem work properly, or actionperformed not work.
suggestions appreciated, i've tried switching them action
suggested elsewhere on forum, didn't work out either.
package h03verplaatsbarebal; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class paneel extends jpanel implements actionlistener{ //declare objects private jbutton knoplinks; // moves ball left private jbutton knoprechts; // moves ball right //constants private int horizontaleplaats; // variabele voor horizontale plaats private int verplaatsing; // constante voor verplaatsing /*create panel 2 buttons (to left, right) , ball*/ public paneel() { //create objects knoplinks = new jbutton ("naar links"); knoplinks.addactionlistener(this); knoprechts = new jbutton ("naar rechts"); knoprechts.addactionlistener(this); //tooltips knoplinks.settooltiptext("klik hier om de bal naar links te bewegen"); knoprechts.settooltiptext("klik hier om de bal naar rechts te bewegen"); //add window add(knoplinks); add(knoprechts); } public void paintcomponent(graphics g){ super.paintcomponent(g); int midden = getwidth() / 2; // halfway screen int baldiameter = 50; int ovaaldiameter = 25; horizontaleplaats = midden; //draw line g.setcolor(color.green); g.drawline(30, getheight() - 30, getwidth() -30, getheight() - 30); //lijn //draw ball g.setcolor(color.orange); g.filloval(horizontaleplaats - baldiameter, getheight() - 130, 100, 100); // oranje bal g.setcolor(color.black); g.drawoval(horizontaleplaats - baldiameter, getheight() - 130, 100, 100); //lijn van bal g.setcolor(color.black); g.drawoval(horizontaleplaats - ovaaldiameter, getheight() - 130, 50, 100); // binnen lijnen } /*clicking buttons*/ public void actionperformed(actionevent e) { verplaatsing = 15; if (e.getsource() == knoplinks){ //move left horizontaleplaats = horizontaleplaats - verplaatsing; } else { //move right horizontaleplaats = horizontaleplaats + verplaatsing; } repaint(); // paint again } }
your action listener should work, modifying value of horizontaleplaats
.
the problem horizontaleplaats
gets overwritten value of midden
in paintcomponent
, never see result of performed actions.
horizontaleplaats = midden;
Comments
Post a Comment