May 29, 2001
cadaver wrote: Pinsamt enkel java fråga,
hur många sätt kan man deklarera instansvariablar på?Ex:
private KorvKiosk[] kiosk;Kan det skrivas som
private kiosk [] = new KorvKiosk;Kiosk är ska vara en array av KorvKiosk...
instans variabeln fungerar bra som du har skrivit, kan vara smart att lägga till en till variabel som heter "int antal" eftersom det är en array som du ska lagra dina KorvKiosk objekt i. Då kan du skriva en konstruktor i den här stilen:
public klassnamn_här(int a) {
antal = a;
kiosk= new kiosk[antal];
}
I main blir det då:
Klass_namn koisk1 = new Klass_namn(20);
Något i den stilen, har hållt på och kodat äckel VB några dagar så du får ursäkta om några slarvfel har slinkit med
September 11, 2002
cadaver wrote: Kan det skrivas som
private kiosk [] = new KorvKiosk;
nä, om du vill att variabeln som refererar till arrayen ska heta "kiosk" och arrayen ska innehålla "KorvKiosk" objekt, så kan du inte göra såhär.
du deklarerar en (privat) KorvKiosks-array såhär:
private KorvKiosk[] kiosk;
precis som du skrivit...
sen instantierar du den såhär:
kiosk = new KorvKiosk[storlekpåarrayen];
sen fyller du den med KorvKiosk objekt hur du vill...
om du menar att du vill göra allt på en gång så går dt bra:
private KorvKiosk[] kiosk = new KorvKiosk[storlekpåarrayen];
du kan också deklarera den såhär:
private KorvKiosk kiosk[];
men det är enligt mig inte bra, det blir bara svårbegripligt....
February 9, 2002
Okej, jag förstår 🙂
Kommer att anända mig av tipsen. Nu dock en annan fråga:
JFrame frame = new JFrame("Particle crasher v0.1");
JPanel panel = new JPanel(new BorderLayout());
JButton b1 = new JButton("Load");
JButton b2 = new JButton("Save");
JButton b3 = new JButton("Exit");
frame.setSize(400,400);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
panel.add(b1,BorderLayout.WEST);
panel.add(b2,BorderLayout.EAST);
panel.add(b3,BorderLayout.SOUTH);
frame.pack();
frame.show();
Jag använder frame.setSize(400,400); men ändå så blir inte fönstret den storleken. Är inte frame fönstret? Hur ska jag få fönstret att starta i 400,400?
February 9, 2002
Okej jag lyckades ändra storleken så den blev rätt:
JFrame frame = new JFrame("Particle crasher v0.1");
JPanel panel = new JPanel(new BorderLayout());
JButton b1 = new JButton("Load");
JButton b2 = new JButton("Save");
JButton b3 = new JButton("Exit");
frame.setSize(256,256);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
cont = new Container();
frame.getContentPane().add(cont);
frame.setVisible(true);
panel.add(b1,BorderLayout.WEST);
panel.add(b2,BorderLayout.EAST);
panel.add(b3,BorderLayout.SOUTH);
frame.pack();
frame.show();
Dock så försvinner mina knappar då, hur får jag tillbaka dom?
September 11, 2002
när du använder pack() så kommer dina storleksinställningar för den komponenten sluta gälla, istället "packas" allt samman så det blir så lite oanvänd yta som möjligt.
metoden show() används inte gärna (den är sk deprecated = starkt ogillad =) ) sen JDK 5). man bör istället använda setVisible(boolean) som du gjort.. men när den anropas så kommer allt synas som ställts in innan den kallats. du har satt den innan knapparna läggs till i "panel" och borde ligga därefter. dock så borde show() göra susen som det ser ut nu. men testa att ta bort pack() och show() och lägg setVisible(true) sist av allt.
om inte detta funkar så är ett tips att försöka isolera problemet, jag hade startat med att ta bort BorderLayout, den ställer ofta till med jobbiga problem. testa att använda vanlig FlowLayout till att börja med så du ser att knapparna existerar iaf.
jag gillar också att alltid skapa alla knappar och panels etc först sen sist innan jag gör fönstret synligt så lägger jag till allt i min JFrame eller vad jag använder, det blir mycket lättare att hitta vad man gjort och när.
allt som har med awt o swing att göra innebär ofta en del pillemojs.. bara att testa sig fram.
1 Guest(s)