Professional Documents
Culture Documents
Internet programirawe
Naslov na temata
Grafika vo JAVA
1.Voved..............................................................................................2
2.Klasa za grafika..........................................................................3
2.1.drawString() metod.....................................................................8
2.2.drawLine() metod........................................................................8
2.3.drawRect() metod........................................................................9
2.4.drawImage() metod...................................................................10
3.Color class....................................................................................12
4.Font class......................................................................................14
5.Zaklu~ok......................................................................................16
-1-
1.Voved
-2-
2.Klasa za grafika
-3-
super.paint(g);//ramkata mo`e da ima problemi so //obnovuvaweto na
slikata na ekranot bez prvo da go //povika super metodot
}
-4-
sl.2:Koordinaten sistem za pretstavuvawe na grafika
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
JPanel koj {to be{e upotreben vo prethodniot primer mora da bide dodaden
na JFrame.So naredniot primer }e bide opi{ano i toa.
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
-5-
PaintingStuff pStuff=new PaintingStuff();
StartPaintingStuff()
{
setupGUI();
}
private void setupGUI()
{
Container c=getContentPane();
c.setLayout(new BorderLayout());
c.add(BorderLayout.CENTER.pStuff);
setSize(200,200);
setVisible(true);
}
}
sl.3:Izlez od PaintingStuff
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
-6-
class PaintingStuff extends JPanel
{
PaintingStuff()
{
}
private void drawSomething()
{
Graphics g=getGraphics();
g.setColor(Color.red);
g.drawSomething(“Hello World”,70,100):
}
}
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
-7-
metodot.Ovoj paint(Graphics g) metod treba da gi sodr`i site kodovi za
precrtuvawe na celokupniot komponent.Isto taka AWT mo`e da se prinudi
da go povika paint(Graphics g) metodot ako podatocite koi vlijaat na
izlezot na programata bidat promeneti.Vo ovoj slu~aj povikot na repaint()
metodot }e go prinudi AWT da go povika paint(Graphics g) metodot na
komponentite.Repaint() metodot prika`uva nekoi koregirawa,no glavno go
povikuva paintComponent(Graphics g) ili paint(Graphics g) metodot.
JAVA programerite treba da bidat zadovolni od metodite koi se
dostapni vo klasata za grafika.Vo delot {to sleduva podetalno }e bidat
opi{ani nekoi od ovie metodi.Toa se metodite:
- drawString()
- drawLine()
- drawRect()
- drawImage()
2.1.drawString() metod
2.2.drawLine() metod
import javax.swing.*;
import java.awt.Graphics;
-8-
g.drawLine(35,75,35,115);
g.drawLine(25,115,35,115);
g.drawLine(55,75,55,115);
g.drawLine(65,75,65,115);
g.drawLine(55,75,65,75);
g.drawLine(55,85,65,85);
g.drawLine(75,75,80,115);
g.drawLine(80,115,85,75);
g.drawLine(95,75,95,115);
g.drawLine(105,75,105,115);
g.drawLine(95,75,105,75);
g.drawLine(95,85,105,85);
}
}
2.3.drawRect() metod
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
-9-
}
Krajniot rezultat od ovoj primer treba da bide sli~en kako {to e dadeno na
slika 4.
2.4.drawImage() metod
import java.applet.Applet;
import java.awt.*;
import javax.swing.*;
public class Test1 extends JApplet
{
private Image i;
public void init()
{
i=getImage(getDocumentBase(),”9a.jpg”);
}
public void paint(Graphics g)
{
g.drawImage(i,0,0,this);
}
}
- 10 -
memorijata,toga{ ovoj metod vra}a logi~ka vrednost ednakva na
neto~no.Proveruvaweto na vratenata vrednost vo ovoj metod e
neophodno.Ako vratenata vrednost e neto~no,toga{ programara treba da
po~eka za slikata da bide nacrtana.
Vo prodol`enie }e bide napi{an u{te eden primer za iscrtuvawe na
nekoja slika,me|utoa ovde toa e napraveno i so nekoi drugi doteruvawa na
pozadinata na slikata.
import java.awt.*;
import java.awt.image.*;
public class ImageUtilities
{
public static BufferedImage getBufferedImage(String
imageFile,Component c)
{
Image image=c.getToolkit().getImage(imageFile);
waitForImage(image,c);
BufferedImage bufferedImage=new BufferedImage
(image.getWidth(c),image.getHeight(c),BufferedImage.TYPE
_INT_RGB);
Graphics2D g2d=bufferedImage.createGraphics();
g2d.drawImage(image,0,0,c);
return(bufferedImage);
}
public static boolean waitForImage(Image image, Component c)
{
MediaTracker tracker=newMediaTracker(c);
tracker.addImage(image,0);
try
{
tracker.waitForAll();
}
catch(InterrruptedException ie){}
return(!tracker.isErrorAny());
}
public static boolean waitForImages(Image[] images, Component c)
{
MediaTracker tracker=new MediaTracker(c);
for(int i=0;i<images.length;i++)
tracker.addImage(images[i],0);
try
{
tracker.waitForAll();
}
catch(InterruptedException ie) {}
return (!tracker.isErroAny());
- 11 -
}
}
sl.5.Izlez na ImageUtilities
3.Color class
import java.awt.*;
import java.awt.event.*;
- 12 -
import java.awt.Window.*;
import javax.swing.*;
class PaintingStuff extends JPanel
{
PaintingStuff ()
{
setupGUI();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.red);// M1
g.drawString("Hello World",70,100);
g.setColor(new Color(200,100,200));// M2
g.drawRect(50,50,100,100);
}
}
sl.6.Izlez na PaintingStuff
import java.awt.*;
public class GradientPaintExample extends ShapeExample
{
private GradientPaint gradient =new GradientPaint(0, 0, Color.red, 175,
175, Color.yellow,true);
public void paintComponent(Graphics g)
{
clear(g);
Graphics2D g2d = (Graphics2D)g;
drawGradientCircle(g2d);
- 13 -
}
protected void drawGradientCircle(Graphics2D g2d)
{
g2d.setPaint(gradient);
g2d.fill(getCircle());
g2d.setPaint(Color.black);
g2d.draw(getCircle());
}
public static void main(String[] args)
{
WindowUtilities.openInJFrame(newGradientPaintExample(),
380, 400);
}
}
sl.7.Izlez
4.Font class
- 14 -
sekoja platforma,Java gi ima odredeno slednite fontovi dostapni na sekoja
java virtuelna ma{ina.Toa se:
- Serif
- Sans Serif
- Monospaced
- Dialog
- Dialog Input
import java.awt.*;
import java.awt.event.*;
import java.awt.Window.*;
import javax.swing.*;
class PaintingStuff extends JPanel
{
PaintingStuff ()
{
setupGUI();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.red);
g.setFont(new Font("Serif", Font.BOLD +
Font.ITALIC, 20));
g.drawString("Hello World",70,100);
g.setColor(new Color(200,100,200));
g.drawRect(50,50,100,100);
}
}
sl.8.Izlez od PaintingStuff
- 15 -
Zaklu~ok
- 16 -