claus reimer wrote:
> men en lille detajle, den viser kun knapperne hvis
> man kalder init
>
> workArea wa = new workArea();
> wa.init()
> wa.setVisible(true);
> add(wa);
> burde den ikke automatisk selv kalde init ?
Nej - en Applet er speciel i og med at init() kaldes af en browser eller
appletviewer. For alle andre klasser er det kun konstruktoren, der
kaldes automatisk.
Du burde lave
public void init()
om til
public workArea()
- som er en konstruktor der bliver kaldt når du laver et workArea objekt med
new workArea()
> og hvad hvis man nu f.eks ville gi den en Layout Manager - jeg har prøvet
> med
> workArea wa = new workArea(new GridLayout(1,1));
> men compileren brokker sig - jeg synes nu ellers selv at det ville havde
> været rimeligt logisk på den måde :)
workArea har ingen konstruktor der tager en LayoutManager som argument,
men du kan sætte den med wa.setLayout(new GridLayout(1,1)) eller i
workAreas konstruktor, som du allerede gør:
Her er en version med 2 konstruktorer, hvor
workArea wa = new workArea(new GridLayout(1,1));
er muligt
class workArea extends JPanel
{
//konstruktor 1 - bruges som
// workArea wa = new workArea();
//GridLayout(20,20) er default layout
public workArea(){
setLayout(new GridLayout(20,20));
for (int a=0;a<400;a++){
add(new JButton("But" + Integer.toString(a)));
}
}
//konstruktor 2 - bruges som
// workArea wa = new workArea( new GridLayout(1,1) );
public workArea( LayoutManager layout ){
setLayout(layout);
for (int a=0;a<400;a++){
add(new JButton("But" + Integer.toString(a)));
}
}
}
Ulrik Magnusson
--
What the world needs now is programs that WORK, not ones that don't
work, but don't work 5% faster.
Roedy Green
Visit my home page:
http://www.geocities.com/ulrikm