25. april 2005 - 13:48
Der er
14 kommentarer og 1 løsning
Hvordan styrer jeg bedst mine GUI elementer?
Jeg skal lave en brugergrænseflade hvor højredelen skal være et variabelt felt og venstredelen en menu. Menuen består af en række elementer - tekst felter - knapper - og inputtekstfelter. Hvordan styrer jeg det bedst. -er det noget med at putte grid inden i grid eller? --jeg er ret ny i java
Annonceindlæg fra Idura
25. april 2005 - 13:55
#1
måske: Grid Layout med 2 JPanel venstre JPanel: Grid Layout med JTextField & JButton
25. april 2005 - 14:03
#2
jeg har i mellem tiden lige skrevet denne her: public class Butikken{ public Butikken(){ JPanel gui = new JPanel(); JPanel venstre = new JPanel(); JPanel højre = new JPanel(); JLabel ht = new JLabel("Højre top"); JLabel hc = new JLabel("Højre center"); JLabel hb = new JLabel("Højre bund"); JLabel vt = new JLabel("Venstre top"); JLabel vc = new JLabel("Venstre center"); JLabel vb = new JLabel("Venstre bund"); JPanel htop= new JPanel(); htop.add(ht); JPanel hcenter= new JPanel(); hcenter.add(hc); JPanel hbund = new JPanel(); hbund.add(hb); JPanel vtop= new JPanel(); vtop.add(vt); JPanel vcenter= new JPanel(); vcenter.add(vc); JPanel vbund = new JPanel(); vbund.add(vb); venstre.setLayout(new GridLayout(1, 3)); venstre.add(vtop); venstre.add(vcenter); venstre.add(vbund); højre.add(htop); højre.add(hcenter); højre.add(hbund); højre.setLayout(new GridLayout(1, 3)); gui.add(venstre); gui.add(højre); JFrame b = new JFrame(); b.setDefaultLookAndFeelDecorated(true); b.setContentPane(gui); b.setBounds(50, 50, 800, 600); b.show(); } }
25. april 2005 - 14:03
#3
giver det mening
25. april 2005 - 14:08
#4
public class Butikken{ public Butikken(){ JPanel gui = new JPanel(); JPanel venstre = new JPanel(); JPanel højre = new JPanel(); gui.add(venstre); gui.add(højre); JLabel ht = new JLabel("Højre top"); JLabel hc = new JLabel("Højre center"); JLabel hb = new JLabel("Højre bund"); JLabel vt = new JLabel("Venstre top"); JLabel vc = new JLabel("Venstre center"); JLabel vb = new JLabel("Venstre bund"); JPanel htop= new JPanel(); htop.add(ht); JPanel hcenter= new JPanel(); hcenter.add(hc); JPanel hbund = new JPanel(); hbund.add(hb); JPanel vtop= new JPanel(); vtop.add(vt); JPanel vcenter= new JPanel(); vcenter.add(vc); JPanel vbund = new JPanel(); vbund.add(vb); højre.setLayout(new GridLayout(3, 1)); venstre.setLayout(new GridLayout(3, 1)); venstre.add(vtop); venstre.add(vcenter); venstre.add(vbund); højre.add(htop); højre.add(hcenter); højre.add(hbund); JFrame b = new JFrame(); b.setDefaultLookAndFeelDecorated(true); b.setContentPane(gui); b.setBounds(50, 50, 400, 400); b.show(); //b.pack(); } } lille rettelse- er det er god måde at sætte op på?
25. april 2005 - 14:14
#5
Normalt så lader man sin egen klasse extende JFrame. Jeg kan heller ikke se layout manager på JFrame'en. Men ellers er det sådan man gør. Man laver nogle JPanels og sætter nogle passende layout managers på.
25. april 2005 - 14:48
#6
hvad får jeg egentligt ud af at extende jeg har jo importeret klassen og dertilhørende metoder?
25. april 2005 - 15:36
#7
Du får nedarvede metoder. Hvis du bruger Eclipser så kan jeg anbefale dig at få fat i et plugin der hedder Visual Editor. Det tager sig af kodning af GUI's.
25. april 2005 - 15:36
#8
Eclipse*
25. april 2005 - 15:55
#9
jeg bruger jcreator har prøvet elipse(kort) men kunne ikke få den til at compile og execute
25. april 2005 - 16:01
#10
Har JCreator en GUI builder så du kan drop and dragge komponenter ind ?
25. april 2005 - 16:03
#11
Objektivt er eneste fordel ved at extende fremfor aggregate JFRame vel at man kan override metoder (og bruge protected metoder, men det er vist ikke relevant). Og man kan sikkert godt lare sig uden den mulighed. Men så godt som alle eksempler på nettet bruget extend og derfor er man altså bedre stillet med det. GUI buildere laver også extend JFrame klasser.
25. april 2005 - 16:18
#12
ok, er det virkeligt ikke muligt at lave et "linieskift" i java skal jeg bruge grid hvis jeg bare vil have to elementer oven på hinanden? (svar med "svar" så giver jeg nogle p)
25. april 2005 - 16:19
#13
jeg tror ikke jcreator har en dragge-dropper
25. april 2005 - 16:23
#14
Placeringen af komponenter styres med layout manager. Du kan lave linie skift i indholdet af et JTextArea med "\r\n".
25. april 2005 - 16:23
#15
svar
Kurser inden for grundlæggende programmering