Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.event.*;
- import java.awt.*;
- import java.awt.Graphics;
- class Start implements ActionListener{
- JFrame ramka;
- JButton wLewo;
- JButton wPrawo;
- JButton Naprzod;
- JButton wGore;
- JButton wDol;
- JButton Clean;
- JButton Zamknij;
- PanelRysunkowy okienkoR; //okienko do rysowania
- class PanelRysunkowy extends JPanel {
- public void paintComponent(Graphics g) {
- super.paintComponents(g);
- }
- }
- public boolean rysowanie = false;
- private int wys=500;
- private int szer=500;
- private int wspx=240; //poczatkowe polozenie
- private int wspy=200;
- private int position=0;
- //elementy tekstowe
- JLabel stanPiora = new JLabel(" Stan piora: Podniesione ");
- JLabel polozenieP=new JLabel(" Polozenie: ("+240+","+200+")");
- JLabel kierunek = new JLabel(" Kierunek: "+ position);
- public void pokazOkno(){
- ramka=new JFrame();
- ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- ramka.setSize(szer, wys);
- //przyciski
- wLewo=new JButton("left");
- wPrawo=new JButton("right");
- Naprzod=new JButton("forward");
- wGore=new JButton("pen up");
- wDol=new JButton("pen down");
- Clean=new JButton("clean");
- Zamknij=new JButton("quit");
- wLewo.addActionListener(this);
- wPrawo.addActionListener(this);
- Naprzod.addActionListener(this);
- wGore.addActionListener(this);
- wDol.addActionListener(this);
- Clean.addActionListener(this);
- Zamknij.addActionListener(this);
- JPanel jp=new JPanel();
- jp.setLayout(new BorderLayout());
- okienkoR=new PanelRysunkowy();
- JToolBar tb=new JToolBar(); //miejscowka na przyciski
- JToolBar tb2=new JToolBar();//na dane tekstowe
- //dodaje przyciski na toolbar
- tb.add(wLewo);
- tb.add(wPrawo);
- tb.add(Naprzod);
- tb.add(wGore);
- tb.add(wDol);
- tb.add(Clean);
- tb.add(Zamknij);
- tb2.add(stanPiora);
- tb2.add(polozenieP);
- tb2.add(kierunek);
- //tb.add(stanPiora);
- //ustalam polozenie panelu i toolbara w okienku
- jp.add("Center",okienkoR);
- jp.add("North",tb);
- jp.add("South",tb2);
- ramka.add(jp);
- ramka.setVisible(true);
- }
- public void actionPerformed(ActionEvent akcja){
- Graphics rysik= okienkoR.getGraphics(); //pobieram z panelu rys obiekt typu graphics ktorego bede uzywal o rysowania
- rysik.setColor(Color.BLACK);
- if(akcja.getSource()==wDol){
- rysowanie = true;
- stanPiora.setText(" Stan piora: Opuszczone ");
- }
- else if(akcja.getSource()==wGore){
- rysowanie = false;
- stanPiora.setText(" Stan piora: Podniesione ");
- }
- else if(akcja.getSource()==wLewo){ //dla przycisku left
- if(position==0){
- position=270;
- kierunek.setText(" Kierunek: "+ position);
- return; }
- else if(position==90){
- position=0;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- else if(position==180){
- position=90;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- else if(position==270){
- position=180;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- }
- else if(akcja.getSource()==wPrawo){ //dla przycisku right
- if(position==0){
- position=90;
- kierunek.setText(" Kierunek: "+ position);
- return; }
- else if(position==90){
- position=180;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- else if(position==180){
- position=270;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- else if(position==270){
- position=0;
- kierunek.setText(" Kierunek: "+ position);
- return;
- }
- }
- else if(akcja.getSource()==Naprzod){
- if(position==0){
- int y=wspy;
- wspy=wspy-10;
- if(rysowanie==true){
- //for(int i = wspy;i<y;i++){
- rysik.drawLine(wspx,wspy,wspx,y);
- // }
- }
- }
- if(position==90){
- int x=wspx;
- wspx+=10;
- if(rysowanie==true){
- rysik.drawLine(wspx,wspy,x,wspy);
- }
- }
- if(position==180){
- int y = wspy;
- wspy=wspy+10;
- if(rysowanie==true){
- rysik.drawLine(wspx,wspy,wspx,y);}
- }
- if(position==270){
- int x=wspx;
- wspx-=10;
- if(rysowanie==true){
- rysik.drawLine(wspx,wspy,x,wspy);
- }
- }
- polozenieP.setText(" Polozenie ("+wspx+","+ wspy +") ");
- }
- else if(akcja.getSource()==Clean){
- rysowanie = false;
- position=0;
- wspx=240;
- wspy=200;
- polozenieP.setText(" Polozenie ("+wspx+","+ wspy +") ");
- stanPiora.setText(" Stan piora: Podniesione ");
- kierunek.setText(" Kierunek: "+ position);
- rysik.clearRect(0,0,500,500);//tu czysci okienko
- }
- else if(akcja.getSource()==Zamknij){
- System.exit(0);
- }
- }
- public static void main(String[] args){
- Start rysuj=new Start();
- rysuj.pokazOkno( );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement