Napisalem pewien program i nie wiedzic czmu nie chce działc.Program jest inspirowany z ksiazki Java 2 Podstawy. Ma on wyswietlac linie na ekranie po wcisniecu odpowiednich klawiszy porgram sie kompiluje ale nie nic nie wyswietla po na prawde dlugiej analizie nie wiem w czym jest problem ...Prosze o pomoc
A to to kod Programu
import javax.swing.JFrame;
public class Szkic {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
RamkaSzkicu ramka=new RamkaSzkicu();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.setVisible(true);
}
}
import java.awt.Container;
import javax.swing.JFrame;
public class RamkaSzkicu extends JFrame {
/**
*
*/
private static final long serialVersionUID = -8989754551010027261L;
public RamkaSzkicu(){
setTitle(" szkic ");
setSize(szer,wys);
PanelSzkicu panel=new PanelSzkicu();
Container powZawartosci=getContentPane();
powZawartosci.add(panel);
}
private static final int szer=+300;
private static final int wys=300;
}
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import javax.swing.JPanel;
public class PanelSzkicu extends JPanel {
/**
*
*/
private static final long serialVersionUID = 6075326502819407047L;
public PanelSzkicu(){
ostatni=new Point2D.Double(100,100);
linie =new ArrayList();
UchwytKlawisza szluchacz=new UchwytKlawisza();
addKeyListener(szluchacz);
}
public boolean isFocusTravesable(){
return true;
}
public void add(int dx, int dy){
Point2D koniec=new Point2D.Double(ostatni.getX()+dx,
ostatni.getY()+dy);
System.out.println("cos sie dzije");
Line2D linia =new Line2D.Double(ostatni,koniec);
linie.add(linia);
repaint();
ostatni=koniec;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
System.out.println(linie.size());
for(int i=0;i<linie.size();i++){
g2.draw((Line2D)linie.get(i));
}
}
private Point2D ostatni;
private ArrayList linie;
private static final int predkoscNormalna=1;
private static final int predkoscZwiekszona=5;
private class UchwytKlawisza implements KeyListener{
public void keyPressed(KeyEvent zdarzenie){
int kodKlawisza=zdarzenie.getKeyCode();
System.out.println(predkoscNormalna);
int d;
if (zdarzenie.isShiftDown())
d=predkoscZwiekszona;
else
d=predkoscNormalna;
if(kodKlawisza==KeyEvent.VK_LEFT){add(-d,0);}
else if(kodKlawisza==KeyEvent.VK_RIGHT)add(d,0);
else if (kodKlawisza==KeyEvent.VK_UP)add(0,-d);
else if(kodKlawisza==KeyEvent.VK_DOWN)add(0, d);
}
public void keyReleased(KeyEvent zdarzenie){}
public void keyTyped(KeyEvent zdarzenie){
char znakKlawisza=zdarzenie.getKeyChar();
int d;
if(Character.isUpperCase(znakKlawisza)){
d=predkoscZwiekszona;
znakKlawisza=Character.toLowerCase(znakKlawisza);
}else
d=predkoscNormalna;
if(znakKlawisza=='h')add(-d,0);
else if(znakKlawisza=='l')add(d,0);
else if (znakKlawisza=='k')add(0,-d);
else if(znakKlawisza=='j')add(0, d);
}
}
}