Witam. Niedawno zacząłem uczyć się programowania w Javie. Niestety napotkałem pierwszy problem którego nie jestem w stanie objeść. Może wy mi pomożecie.
Do rzeczy oto kod:
PanelLicznik.java
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.geom.*;
import java.awt.geom.Line2D;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class PanelLicznik extends JPanel implements Runnable
{
int srodek=450;
Image bg;
int a=400, i=0, t=0, v=0;
double x=152, y=756;
public PanelLicznik() {
Thread watek1=new Thread(this);
watek1.start();
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(900, 900);
}
@Override
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
g2.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
bg=new ImageIcon(this.getClass().getResource("s.gif")).getImage();
g2.drawImage(bg,0,0,null);
Line2D wsk=new Line2D.Double(srodek,srodek,x,y);
g2.setColor(new Color(255,255,255));
g2.setStroke(new BasicStroke(15.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER));
g2.draw(wsk);
}
@Override
public void run() {
t=3;
int ax=100;
int bx=0;
while(bx<ax){
try{
Thread.sleep(100);
}catch(Exception ek){}
double stopien=231.4-(360/280);
double radSek=Math.toRadians(stopien);
x=srodek+(a*Math.cos(radSek));
y=srodek-(a*Math.sin(radSek));
repaint();
bx=bx++;
}
}
}
Licznik.java
import javax.swing.JApplet;
public class Licznik extends JApplet {
@Override
public void init() {
setSize(900,900);
PanelLicznik pl=new PanelLicznik();
add(pl);
}
}
Otóż pętla while(bx<ax) działa tylko raz zamiast 100 razy. Coś zapewne powoduje problem, ale nie mam pojęcia co. Dlatego zwracam się o pomoc do was. Wiecie jak to naprawić ? Z góry dzięki za pomoc :)