On Tue, 13 Feb 2001, Jonas Swiatek wrote:
> Mmm, hvis jeg extender Component frem for Canvas, tegner den ingen ting...
> Jeg kan ikke se grafiken, hvis man kan sige det sådan...
> Skal man painte på en anden måde, hvis man extender Component ?
Her er et lille eksempel. Det består af en applet med sort baggrund.
Jeg tilføjer en standard Button og et TransparentComponent (arver fra
Component), som består af en gul ellipse. Applet'ens sorte baggrund kan
ses igennem TransparentComponent, der hvor den gule ellipse ikke er.
--- SNIP ---
import java.applet.*;
import java.awt.*;
public class Player2 extends Applet {
public void init() {
setLayout(new BorderLayout());
TransparentComponent comp = new TransparentComponent();
add(BorderLayout.CENTER, comp);
add(BorderLayout.NORTH, new Button("Test"));
//repaint();
}
public void paint(Graphics g) {
Rectangle bounds = getBounds();
g.setColor(Color.black);
g.fillRect(0, 0, bounds.width, bounds.height);
super.paint(g);
}
}
class TransparentComponent extends Component {
public void paint(Graphics g) {
System.out.println("Paint");
Rectangle bounds = getBounds();
g.setColor(Color.yellow);
g.fillOval(0,0,bounds.width, bounds.height);
}
}
--- SNIP ---
> En anden ting er, normalt når jeg tegner animaret grafik, laver jeg et
> Graphics-objekt, og kalder createImage i det.
Jeg håber du mente det modsatte.
Image backImage = createImage(width, height);
Graphics backGfx = backImage.getGraphics();
Se evt:
http://webcafe.dk/java/artikler/103/ja103.php3
(Ja, jeg ved godt at mine java artikler er efterladt i en miserabel
tilstand. Men en skønne dag skal jeg nok få dem opdateret... en skønne
dag....)
---
Rene Hangstrup Møller ||
http://WebCafe.dk - Dansk side om webdesign.