» »

[Java] Grafika

[Java] Grafika

SkIDiver ::

Se komu sanja zakaj spodnja koda ne izpiše besedila v apletu? Prepisano je pa direkt iz knjige.

import javax.swing.*;
import java.awt.*;

public class JDemoFontMetrics extends JApplet {

	String companyName = new String("Event Handlers Incorporated");
	
	Font courierItalic = new Font("Courier", Font.ITALIC, 16);
	Font timesPlain = new Font("TimesRoman", Font.PLAIN, 16);
	Font helvetBold = new Font("Helvetica", Font.BOLD, 16);
		 
		 int ascent, descent, height, leading;
		 int x = 10, y = 15;
		 
		 static final int INCREASE = 15;
		 
		 public void pain(Graphics pen) {
			 
			 pen.setFont(courierItalic);
			 pen.drawString(companyName, x, y);
			 displayMetrics(pen);
			 pen.setFont(timesPlain);
			 pen.drawString(companyName, x, y += 40);
			 displayMetrics(pen);
			 pen.setFont(helvetBold);
			 pen.drawString(companyName, x, y += 40);
			 displayMetrics(pen);
		 }
		 
		 public void displayMetrics(Graphics metrics) {
			 
			 leading = metrics.getFontMetrics().getLeading();
			 ascent = metrics.getFontMetrics().getAscent();
			 descent = metrics.getFontMetrics().getDescent();
			 height = metrics.getFontMetrics().getHeight();
			 metrics.drawString("Leading is " + leading, x, y += INCREASE);
			 metrics.drawString("Ascent is " + ascent, x, y += INCREASE);
			 metrics.drawString("Descent is " + descent, x, y += INCREASE);
			 metrics.drawString("     ", x, y += INCREASE);
			 metrics.drawString("Height is " + height, x, y += INCREASE);
		 }
}

sverde21 ::

Nimam pojma o Javi (zaenkrat) :8) ampak zakaj importaš swing in awt... kolikor je meni znano sta to 2 ločena grafična paketa :\ zdi se mi pa da uporabljaš samo awt :)
<?php echo `w`; ?>

BlueRunner ::

public void pain(Graphics pen) {
Morda "paint" in ne "pain"?

SkIDiver ::

sverde21 kot vidiš dedujem iz Applet, ki pa je del paketa javax.swing ;)

BlueRunner hvala! Tole je pa zelo dobra šola! Jz sem pa nekako pričakoval, da bo eclipse podčrtal "napako", ki dejansko le to ni:\

Karlos ::

Zaganjanje in ustavljanje apleta
v nasprotju z aplikacijo, aplet nima glavne metode main( );
aplet ima štiri metode, ki se kličejo, ko se zažene ali ustavi:
init( ) se pokliče, ko se aplet prvič naloži in požene v WWW brskalniku. V init ponavadi damo kodo za inicializacijo spremenljivk, nalaganje grafike,...
start( ) se požene vsakič, ko se stran z apletom naloži v WWW brskalniku;
stop( ) se požene, ko zapustimo stran z apletom. stop() lahko tudi sami kličemo in s tem ustavimo aplet;
destroy( )se pokliče, ko se aplet popolnoma odstrani iz WWW brskalnika. V destroy ponavadi damo kodo za sprostitev zasedenih resursov.

Vir

Kje imaš init()?

[Edit: text v tagih st.koda ne izgleda le ogabno (sicer stvar okusa) ampak tudi povzroči predolge vrstice, ki posledično povzročijo, da je treba vsa nadaljna sporočila horizontalno scrollat, da jih lahko prebereš (tega se pa vedno izogibamo) - Gundolf]
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."

Zgodovina sprememb…

  • spremenil: Gundolf ()

SkIDiver ::

Karlos vem. Sem povedal, da je primer iz knjige in ni edini brez init().

sverde21 ::

OK SklDiver :) .

BTW lahko bi še za JAVO naredil eno sticky temo z linki in povezavami, kot je za C++ :) , ker z letošnjim šolskim letom grejo vse tehniške gimnazije (pa še kaka druga šola) na Javo, tako da bo še verjetno veliko vprašanj z Javo (tudi z moje strani verjetno kako :) ).
<?php echo `w`; ?>

SkIDiver ::

sverde21 pametna ideja. Tud iz moje strani bo še kako vprašanje:) predvsem take malenkosti:\

CCfly ::

"My goodness, we forgot generics!" -- Danny Kalev

SkIDiver ::

Še ena zanimivost:)

Ne predvaja zvočne datoteke. Za nameček niti ne odpira gifov. Zvočni file je v isti mapi kot class file. Program pa izvajam v Eclipsu kot Applet. Applet viewer mi odpre zvoka pa nikjer.

import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class JEventSound extends JApplet {

	AudioClip sound;
	
	public void init() {
		
		sound = getAudioClip(getCodeBase(), "event.au");
	}
	
	public void start() {
		
		sound.loop();
	}
	
	public void stop() {
		
		sound.stop();
	}
	
	public void paint(Graphics g) {
		
		Graphics2D g2D = (Graphics2D)g;
		
		g2D.drawString("Playing Event Handlers Inc. Event sounds ...", 10, 10);
	}
}

Zgodovina sprememb…

  • spremenil: SkIDiver ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java @Override

Oddelek: Programiranje
6788 (653) kretze
»

[Java] Zasnova shoot em up igre

Oddelek: Programiranje
111187 (866) PecenkA
»

[Java] Ne zažene appleta

Oddelek: Programiranje
51201 (1134) iggy
»

Null pointer Exception[Java]

Oddelek: Programiranje
61441 (1302) infiniteLoop
»

[NALOGA][Java] Težave pri pisanju slikarja

Oddelek: Programiranje
202280 (1922) l0g1t3ch

Več podobnih tem