21. maj 2000 - 22:39Der er
13 kommentarer og 1 løsning
Tydelig seperation af skærmbilled !!!
Jeg er ved at lave et skærmbilled, som skal deles op i to kolonner. For at tydeliggøre denne opdeling ønsker jeg en eller anden form for en lodret gående streg / seperator. Nogen ide/eksempler på hvordan dette gøres ?
Du kan lave 2 JPanels, som du lægger ind i en nyt JPanel. Eks. JPanel p1 =new JPanel() p1.setBorder(BorderFactory.createEtchedBorder()); JPanel p2 = new JPanel() p2.setBorder(BorderFactory.createEtchedBorder());
JPanel p3 = new JPanel() p3.setLayout (new GridLayout (1,2)); p3.Add(p1); p3.add(p2); Herved får du et skærmbillede der er delst i to lige store dele. Metoden (setBorder(BorderFactory.createEtchedBorder()); laver en slags ramme om de enkelte panels. M.V.H huhej
steffens bud er faktisk ikke helt ubrugeligt, du skal bare huske at du får det bedste resultat når du bruger layoutmanagers inde i layoutmanagers...osv. Jo flere du bruger jo mere kontrol får du.
Så det du kan gøre er:
Lav en tabel med tre kolonner, lav den midterste kolonne smal. I hver af de to yderste celler placerer du et panel. Panelerne giver du så f.eks gridbaglayout-manageren.
Nu kan du begynde at bygge dit skærmbillede op. Vær dog opmærksom på at gridbaglayout er den mest langhårede layoutmanager, så det er en god ide at tegne dit skærmbillede (opdelt i celler) på papir før du går igang.
Det kan være vi lige til en start skulle få fastslået om det er AWT. eller Swing-pakken du arbejder med. For hvis det er AWT. bliver det som kobojt siger svært at arbejde med J-komponenter. ;o)
Så er eksemplet fra Huhej jo udmærket. Hvis du synes, at metoden (setBorder(BorderFactory.createEtchedBorder()); er lidt kedelig kan du eventuelt erstatte den med en lineBorder. Dette gøres ved at skrive: (setBorder(BorderFactory.createLineBorder(Color.blue)); Du kan selv bestemme hvilken farve linien skal have ved at ændre i parantesen. Asse
tak for de mange bud, jeg må indrømme at jeg har haft meget travt med et andet projekt, nemlig at få kontakt til en printer, fra et javaprogram, men jeg kigger på det i nærmeste fremtid, og vil derefter tildele mine points.
Nu hvor du bruger SWING ku' du ligeså godt bruge den klasse der er lavet til det du be'r om, nemlig JSplitPane. JSplitPane laver en separator imellem to komponenter(lodret eller vandret).
altså:
JComponent spalte1 = new JComponent(); JComponent spalte2 = new JComponent(); JSplitPane JSP = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, spalte1, spalte2); //Laver et JSplitPane med spalte1 til venstre og spalte2 til højre JSplitPane.setDividerSize(3); //Sætter separatorens tykkelse JSplitPane.setDividerLocation(100); //Sætter separatorens placering på X-aksen
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.