Back Up Next

Risanje

Metoda paint dobi za argument ročico na grafični kontekst Graphics, ki jo lahko uporabimo za risanje, spreminjanje barv,...; Graphics vsebuje npr. metode drawArc, drawRect, drawLine, drawString, setColor,...
 
import java.awt.*;
import java.applet.*;
//**********************************************
public class Risanje extends Applet {
     public void init() {
     this.setBackground(Color.blue);
     repaint();
  }
//**********************************************
  public void paint(Graphics  g) {
      g.setColor(Color.gray);
      g.fillRect(20,100,150,50); // narisemo voz
      g.setColor(Color.yellow);
      g.fillOval(30,130,40,40);  // narisemo kolesa
      g.fillOval(120,130,40,40);
      g.setColor(Color.black);
      g.drawOval(30,130,40,40);  // narisemo obroce na kolesih
      g.drawOval(120,130,40,40);
      g.setColor(Color.orange);
      g.drawLine(170,150,250,100); // narisemo rocico
      g.setColor(Color.white);
      g.setFont(new Font("Helvetica",Font.BOLD,24));
      g.drawString("moj voz",30,40);  // kaj to sploh je
  }
}

Canvas

Za risanje lahko v Javi uporabimo osnovno komponento platno (Canvas);
platno predstavlja prazno pravokotno področje, na katerega lahko program riše in spremlja dogodke na njem;
ko se platno izriše, se pokliče njegova metoda paint. Če želimo torej na platno risati, moramo narediti svoj razred, ki ga izpeljemo iz razreda Canvas in prekrijemo njegovo metodo paint.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
//*****************************************************
class Platno extends Canvas {
  Risar parent;
  Color color;
  String label;
  int x,y;
  //***************************************************
  Platno(Risar parent, Color color, String label) {
    this.label = label;
    this.parent = parent;
    this.color = color;
    x=40; y=50;
  }
  //*****************************************************      
  public void paint(Graphics  g) {
        
     g.setColor(color);
     int rnd = 50;
     g.fillRoundRect(0, 0, getSize().width, getSize().height, rnd, rnd);
     g.setColor(Color.black);
     g.drawRoundRect(0, 0, getSize().width,getSize().height, rnd, rnd);
     g.setColor(Color.black);
     g.setFont(new Font("Helvetica",Font.BOLD,24)); 
     g.drawString(label,x,y);
  }

}
//******************************************************
//******************************************************
public class Risar extends Applet {

  Platno p1 = new Platno(this, Color.green, "Risanje na platno");
  
  public void init() {
        this.setBackground(Color.blue);
        setLayout(null);
        p1.addMouseListener(new poslusaj());
        p1.setBounds(20,20,200,150);
        p1.setBackground(Color.white);
        add(p1);
  }
//*****************************************************  
  class poslusaj extends MouseAdapter {
        public void mouseClicked(MouseEvent e) {
                p1.x=e.getX();
                p1.y=e.getY();
                p1.repaint();
        }
  }
  
}
Back Up Next