12. september 2008 - 00:57Der er
7 kommentarer og 1 løsning
Kan ikk få GUI til at virke
I følgende kode prøver jeg at fremvise JTextField(s). Det eneste der kommer frem er vinduet. Hvad mangler jeg ?
public class IterationGUI extends JPanel {
public JFrame frame; public JPanel p1; public JTextField felt1,felt2,felt3,felt4,felt5,felt6,felt7,felt8,felt9,felt10,felt11,felt12,felt13,felt14,felt15, felt16,felt17,felt18,felt19,felt20,felt21,felt22,felt23,felt24,felt25,felt26,felt27,felt28,felt29,felt30,felt31; public JTextArea output;
/*public IterationGUI(){ frame = new JFrame("Prove"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }*/
public void makeGUI(){
frame = new JFrame("Prove"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout());
p1 = new JPanel();
//Opret objekt og placer dem i BorderLayout. p1.add(new JTextField (10));
felt1 = new JTextField (5);p1.add(felt1,BorderLayout.WEST); felt2 = new JTextField (5);p1.add(felt2,BorderLayout.WEST); felt3 = new JTextField (5);p1.add(felt3,BorderLayout.WEST); felt4 = new JTextField (5);p1.add(felt4,BorderLayout.WEST); felt5 = new JTextField (5);p1.add(felt5,BorderLayout.WEST); felt6 = new JTextField (5);p1.add(felt6,BorderLayout.WEST); felt7 = new JTextField (5);p1.add(felt7,BorderLayout.WEST); felt8 = new JTextField (5);p1.add(felt8,BorderLayout.WEST); felt9 = new JTextField (5);p1.add(felt9,BorderLayout.WEST); felt10 = new JTextField (5);p1.add(felt10,BorderLayout.WEST); felt11 = new JTextField (5);p1.add(felt11,BorderLayout.CENTER); felt12 = new JTextField (5);p1.add(felt12,BorderLayout.CENTER); felt13 = new JTextField (5);p1.add(felt13,BorderLayout.CENTER); felt14 = new JTextField (5);p1.add(felt14,BorderLayout.CENTER); felt15 = new JTextField (5);p1.add(felt15,BorderLayout.CENTER); felt16 = new JTextField (5);p1.add(felt16,BorderLayout.CENTER); felt17 = new JTextField (5);p1.add(felt17,BorderLayout.CENTER); felt18 = new JTextField (5);p1.add(felt18,BorderLayout.CENTER); felt19 = new JTextField (5);p1.add(felt19,BorderLayout.CENTER); felt20 = new JTextField (5);p1.add(felt20,BorderLayout.SOUTH); felt21 = new JTextField (5);p1.add(felt21,BorderLayout.SOUTH); felt22 = new JTextField (5);p1.add(felt22,BorderLayout.SOUTH); felt23 = new JTextField (5);p1.add(felt23,BorderLayout.SOUTH); felt24 = new JTextField (5);p1.add(felt24,BorderLayout.SOUTH); felt25 = new JTextField (5);p1.add(felt25,BorderLayout.SOUTH); felt26 = new JTextField (5);p1.add(felt26,BorderLayout.SOUTH); felt27 = new JTextField (5);p1.add(felt27,BorderLayout.SOUTH); felt28 = new JTextField (5);p1.add(felt28,BorderLayout.SOUTH); felt29 = new JTextField (5);p1.add(felt29,BorderLayout.SOUTH); felt30 = new JTextField (5);p1.add(felt30,BorderLayout.SOUTH); felt31 = new JTextField (5);p1.add(felt31,BorderLayout.SOUTH); output = new JTextArea ();p1.add(output,BorderLayout.NORTH);
gav ikk mig selv point i tilfælde jeg skulle gå i stå igen.. og det er jeg
Når jeg kører følgende kode, åbnes et vindue med store kasser i stedet for alle de små, som jeg vil have. ved ikk hvorfor kasserne "udvider" sig så meget.
Hvad skal der gøres for at skrive enkelte JTextField ud ?
import java.awt.*;
import javax.swing.*;
public class IterationGUI extends JFrame {
public JFrame frame; public JPanel p1; public JTextField felt1,felt2,felt3,felt4,felt5,felt6,felt7,felt8,felt9,felt10,felt11,felt12,felt13,felt14,felt15, felt16,felt17,felt18,felt19,felt20,felt21,felt22,felt23,felt24,felt25,felt26,felt27,felt28,felt29,felt30,felt31; public JTextArea output;
public void makeGUI(){
frame = new JFrame("Prove"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p1 = new JPanel(); frame.add(p1);
p1.setLayout(new BorderLayout(2,5)); //Opret objekt og placer dem i BorderLayout.
output = new JTextArea ();p1.add(output,BorderLayout.NORTH); felt1 = new JTextField (5);p1.add(felt1,BorderLayout.WEST); felt2 = new JTextField (10);p1.add(felt2,BorderLayout.WEST); felt3 = new JTextField (10);p1.add(felt3,BorderLayout.WEST); felt4 = new JTextField (10);p1.add(felt4,BorderLayout.WEST); felt5 = new JTextField (10);p1.add(felt5,BorderLayout.WEST); felt6 = new JTextField (10);p1.add(felt6,BorderLayout.WEST); felt7 = new JTextField (10);p1.add(felt7,BorderLayout.WEST); felt8 = new JTextField (10);p1.add(felt8,BorderLayout.WEST); felt9 = new JTextField (10);p1.add(felt9,BorderLayout.WEST); felt10 = new JTextField (10);p1.add(felt10,BorderLayout.WEST); felt11 = new JTextField (10);p1.add(felt11,BorderLayout.CENTER); felt12 = new JTextField (10);p1.add(felt12,BorderLayout.CENTER); felt13 = new JTextField (10);p1.add(felt13,BorderLayout.CENTER); felt14 = new JTextField (10);p1.add(felt14,BorderLayout.CENTER); felt15 = new JTextField (10);p1.add(felt15,BorderLayout.CENTER); felt16 = new JTextField (10);p1.add(felt16,BorderLayout.CENTER); felt17 = new JTextField (10);p1.add(felt17,BorderLayout.CENTER); felt18 = new JTextField (10);p1.add(felt18,BorderLayout.CENTER); felt19 = new JTextField (10);p1.add(felt19,BorderLayout.CENTER); felt20 = new JTextField (10);p1.add(felt20,BorderLayout.EAST); felt21 = new JTextField (10);p1.add(felt21,BorderLayout.EAST); felt22 = new JTextField (10);p1.add(felt22,BorderLayout.EAST); felt23 = new JTextField (10);p1.add(felt23,BorderLayout.EAST); felt24 = new JTextField (10);p1.add(felt24,BorderLayout.EAST); felt25 = new JTextField (10);p1.add(felt25,BorderLayout.EAST); felt26 = new JTextField (10);p1.add(felt26,BorderLayout.EAST); felt27 = new JTextField (10);p1.add(felt27,BorderLayout.EAST); felt28 = new JTextField (10);p1.add(felt28,BorderLayout.EAST); felt29 = new JTextField (10);p1.add(felt29,BorderLayout.EAST); felt30 = new JTextField (10);p1.add(felt30,BorderLayout.EAST); felt31 = new JTextField (10);p1.add(felt31,BorderLayout.EAST);
Når man ser din kode igennem ser den rigtig ud, men hvis man kører den, tilføjer den heller ikke JTextFields til JFrame, dvs man får en blank vindue. jeg har i dit eks tilføjet setSize(700,700) i main - funk
Det er korrekt. Jeg tilfoejer JTextField's til JPanel og ikke til JFrame.
Og det er der gode grunde til.
JFrame har BorderLayout d.v.s. at der kan klaskes 5 komponenter paa den.
Du vil jo have et meget stoerre antal JTextField's - derfor smider jeg 3 JPanel's paa Jframe, giver de JPanel's et GridLayout med plads til 20 komponenter og smider saa 10 JLabels + 10 JTextField's paa hver af dem.
Jeg mener at det er maaden du skal styre dit layout paa.
jeg kan godt se essensen i det kode du viser, men jeg vil VÆLDIG gerne have nogle textfields fremvist i vinduet, så jeg kan komme videre med arbejdet.... og det kan jeg stadig ikke med det eks du viser...
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.