01. december 2006 - 10:12
Der er
4 kommentarer og 1 løsning
Java: Layout
Jeg er ved at lave et layout, men har lavet denne lille eksempelkode, for at illustrere mit problem: import javax.swing.*; import java.awt.*; class Main { public static void main(String[] args) { JFrame frame = new JFrame("Testing layout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel centerPanel = new JPanel(new BorderLayout()); JPanel centerTopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerTopPanel, BorderLayout.NORTH); JPanel centerLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerLeftPanel, BorderLayout.WEST); JPanel centerCenterPanel = new JPanel(); centerCenterPanel.setLayout(new BoxLayout(centerCenterPanel, BoxLayout.Y_AXIS)); centerPanel.add(centerCenterPanel, BorderLayout.CENTER); JPanel centerRightPanel = new JPanel(new BorderLayout()); centerPanel.add(centerRightPanel, BorderLayout.EAST); //creating centerTop Panel centerTopPanel.add(new JLabel("Headline")); //creating centerLeft Panel centerLeftPanel.add(new JLabel("New game:")); //creating centerCenter panel JPanel contentPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel formPanel = new JPanel(new GridLayout(0,1)); JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JLabel competitor1Label = new JLabel("Start 1:"); competitor1Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor1Box = new JComboBox(); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor1Label); formPanel.add(competitor1Box); JLabel competitor2Label = new JLabel("Start 2:"); competitor2Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor2Box = new JComboBox(); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor2Label); formPanel.add(competitor2Box); contentPanel.add(formPanel); contentPanel.add(buttonPanel); centerCenterPanel.add(contentPanel); // centerCenterPanel.add(formPanel); // centerCenterPanel.add(buttonPanel); //creating right panel JLabel headlineRightLabel = new JLabel("Your sales:",JLabel.LEFT); centerRightPanel.add(headlineRightLabel,BorderLayout.NORTH); JList couponList = new JList(); couponList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane scrollCouponList = new JScrollPane(couponList); scrollCouponList.setPreferredSize(new Dimension(250,300)); JPanel scrollPanel = new JPanel(); scrollPanel.add(scrollCouponList); centerRightPanel.add(scrollPanel,BorderLayout.CENTER); //creating bottom panel JButton createButton = new JButton("Spil"); buttonPanel.add(createButton); frame.add(centerPanel, BorderLayout.CENTER); frame.setSize(800,500); frame.setLocation(200,200); frame.setVisible(true); } } Som I kan se, så ligger min "spil" knap forkert i layoutet? Det skyldes at mine Panels ligger sig efter hinanden, istedet for at atarte under det andet. Hvordan kan jeg få det flyttet ned under det andet?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
01. december 2006 - 10:46
#1
import javax.swing.*; import java.awt.*; class Grafik { public static void main(String[] args) { JFrame frame = new JFrame("Testing layout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel centerPanel = new JPanel(new BorderLayout()); JPanel centerTopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerTopPanel, BorderLayout.NORTH); JPanel centerLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerLeftPanel, BorderLayout.WEST); JPanel centerCenterPanel = new JPanel(); centerCenterPanel.setLayout(new BoxLayout(centerCenterPanel, BoxLayout.Y_AXIS)); centerPanel.add(centerCenterPanel, BorderLayout.CENTER); JPanel centerRightPanel = new JPanel(new BorderLayout()); centerPanel.add(centerRightPanel, BorderLayout.EAST); //creating centerTop Panel centerTopPanel.add(new JLabel("Headline")); //creating centerLeft Panel centerLeftPanel.add(new JLabel("New game:")); //creating centerCenter panel JPanel contentPanel = new JPanel(new BorderLayout()); // ændring JPanel formPanel = new JPanel(new GridLayout(0,1)); JPanel buttonPanel = new JPanel(); //Ændring JLabel competitor1Label = new JLabel("Start 1:"); competitor1Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor1Box = new JComboBox(); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor1Label); formPanel.add(competitor1Box); JLabel competitor2Label = new JLabel("Start 2:"); competitor2Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor2Box = new JComboBox(); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor2Label); formPanel.add(competitor2Box); contentPanel.add(formPanel, BorderLayout.NORTH); //Ændring contentPanel.add(buttonPanel, BorderLayout.CENTER); //Ændring centerCenterPanel.add(contentPanel); // centerCenterPanel.add(formPanel); // centerCenterPanel.add(buttonPanel); //creating right panel JLabel headlineRightLabel = new JLabel("Your sales:",JLabel.LEFT); centerRightPanel.add(headlineRightLabel,BorderLayout.NORTH); JList couponList = new JList(); couponList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane scrollCouponList = new JScrollPane(couponList); scrollCouponList.setPreferredSize(new Dimension(250,300)); JPanel scrollPanel = new JPanel(); scrollPanel.add(scrollCouponList); centerRightPanel.add(scrollPanel,BorderLayout.CENTER); //creating bottom panel JButton createButton = new JButton("Spil"); buttonPanel.add(createButton); frame.add(centerPanel, BorderLayout.CENTER); frame.setSize(800,500); frame.setLocation(200,200); frame.setVisible(true); } }
01. december 2006 - 10:55
#2
Tak for svaret. Der er dog stadig et par problemer: 1) jeg er ikke interesseret i, at de comboBox'es bliver så bredde! De skal bare være de 150px, som jeg har bedt dem om :) 2) Spil-knappen skal gerne være højre-centreret efter de comboBoxes, sådan at den er i højre side.
01. december 2006 - 11:03
#3
Har fundet en anden måde, som er næsten lige så god: import javax.swing.*; import java.awt.*; class Main { public static void main(String[] args) { JFrame frame = new JFrame("Testing layout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel centerPanel = new JPanel(new BorderLayout()); JPanel centerTopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerTopPanel, BorderLayout.NORTH); JPanel centerLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); centerPanel.add(centerLeftPanel, BorderLayout.WEST); JPanel centerCenterPanel = new JPanel(); centerCenterPanel.setLayout(new BoxLayout(centerCenterPanel, BoxLayout.Y_AXIS)); centerPanel.add(centerCenterPanel, BorderLayout.CENTER); JPanel centerRightPanel = new JPanel(new BorderLayout()); centerPanel.add(centerRightPanel, BorderLayout.EAST); //creating centerTop Panel centerTopPanel.add(new JLabel("Headline")); //creating centerLeft Panel centerLeftPanel.add(new JLabel("New game:")); //creating centerCenter panel JPanel contentPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel formPanel = new JPanel(new GridLayout(0,1)); JLabel competitor1Label = new JLabel("Start 1:"); competitor1Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor1Box = new JComboBox(); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.addItem("test"); competitor1Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor1Label); formPanel.add(competitor1Box); JLabel competitor2Label = new JLabel("Start 2:"); competitor2Label.setFont(new Font("Dialog",Font.BOLD,12)); JComboBox competitor2Box = new JComboBox(); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.addItem("test"); competitor2Box.setPreferredSize(new Dimension(150,20)); formPanel.add(competitor2Label); formPanel.add(competitor2Box); JButton createButton = new JButton("Spil"); formPanel.add(new JLabel(" ")); formPanel.add(createButton); contentPanel.add(formPanel); centerCenterPanel.add(contentPanel); //creating right panel JLabel headlineRightLabel = new JLabel("Your sales:",JLabel.LEFT); centerRightPanel.add(headlineRightLabel,BorderLayout.NORTH); JList couponList = new JList(); couponList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane scrollCouponList = new JScrollPane(couponList); scrollCouponList.setPreferredSize(new Dimension(250,300)); JPanel scrollPanel = new JPanel(); scrollPanel.add(scrollCouponList); centerRightPanel.add(scrollPanel,BorderLayout.CENTER); frame.add(centerPanel, BorderLayout.CENTER); frame.setSize(800,500); frame.setLocation(200,200); frame.setVisible(true); } } Der er kun ét problem her: 1) hvordan får jeg knappen til at blive mindre? den skal ikke have fuld bredde.
01. december 2006 - 21:17
#4
Har du et svar? Eller må vi vist hellere få lukker her..smid endelig et svar ;)
01. december 2006 - 21:40
#5
:)
Kurser inden for grundlæggende programmering