Kristoffer Sørensen <kristoffer@cabocomm.dk> skrev i en
nyhedsmeddelelse:qyyX5.1463$7E2.170667@news101.telia.com...
> hmm
> duer det her ikke:
>
Hmmm.... jo, det duer helt sikkert, men er ikke svaret på mit spørgsmål -
eller måske er mit spørgsmål ikke ordenligt formuleret.
Jeg har en Container med et antal Components add'ed ovenpå. Hvad jeg gerne
vil opnå er at hver af disse Components er gennemsigtige, dvs. når at når
man flytter en af dem ( ved at dragge den med musen ) hen over en af de
andre, skal den underliggende Component stadig kunne ses under den man lige
har flyttet, foruden selvfølgelig også Containerens baggrund. Dette kan
gøres i Swing ved at sætte JComponent.setOpaque( false).
Mit spørgsmål var så hvordan dette kunne efterlignes under AWT.
Hvis du (mis)bruger Containerens paint metode i Componentens, og tager højde
for Componentens placering på Containeren, vil det se ud som om at
Componenten er gennemsigtig. Som følger:
/* Paint-metode i Component-klassen */
public void paint( Graphics g)
{
Point p = this.getLocation();
Container c = this.getParent();
if( c != null) {
g.translate( -p.x, -p.y);
c.paint( g); // Tegner parent
g.translate( p.x, p.y);
}
if( m_Image != null) {
g.drawImage( img, 0, 0, this); // Transperant gif
}
}
Problemet kommer når at ikke kun Containeren skal tegnes på Componenten, men
også de underliggende Componenter.
Søren Staun Jørgensen
---
ssj@get2net.dk