
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();
}
}
}
