Annonceindlæg fra Deloitte
19. februar 2004 - 08:24
#3
En kombination af GridLayout og GridBagLayout måske den bedste løsning, kig på nedenstående og vurder det selv. import javax.swing.*; public class JFrame_1 extends javax.swing.JFrame { public JFrame_1() { setTitle("Regnemaskine"); setResizable(false); initComponents(); } private void initComponents() { getContentPane().setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints(); knap = new JButton[10]; for(int i = 0;i < 10; i++){ knap[i] = new JButton(Integer.toString(i)); } display = new JTextField(15); display.setHorizontalAlignment(SwingConstants.RIGHT); gbc.gridx = 0; gbc.gridy = 0; gbc.fill = java.awt.GridBagConstraints.BOTH; getContentPane().add(display, gbc); panel = new JPanel(); panel.setLayout(new java.awt.GridLayout(4, 4)); gbc.gridx = 0; gbc.gridy = 1; gbc.fill = java.awt.GridBagConstraints.BOTH; getContentPane().add(panel, gbc); komma = new JButton(","); plusMinus = new JButton("+/-"); multipl = new JButton("*"); divider = new JButton("/"); plus = new JButton("+"); minus = new JButton("-"); c = new JButton("C"); ce = new JButton("CE"); sum = new JButton("="); panel.add(knap[7]); panel.add(knap[8]); panel.add(knap[9]); panel.add(divider); panel.add(knap[4]); panel.add(knap[5]); panel.add(knap[6]); panel.add(multipl); panel.add(knap[1]); panel.add(knap[2]); panel.add(knap[3]); panel.add(minus); panel.add(knap[0]); panel.add(komma); panel.add(plusMinus); panel.add(plus); panel2 = new JPanel(); panel2.setLayout(new java.awt.GridBagLayout()); pack(); gbc.gridx = 0; gbc.gridy = 0; gbc.fill = java.awt.GridBagConstraints.BOTH; c.setPreferredSize(new java.awt.Dimension(panel.getWidth()/4, panel.getHeight()/4)); panel2.add(c, gbc); gbc.gridx = 1; gbc.gridy = 0; gbc.gridwidth = 2; gbc.fill = java.awt.GridBagConstraints.BOTH; ce.setPreferredSize(new java.awt.Dimension( (int)((panel.getWidth()/4) * 1.5), panel.getHeight()/4)); panel2.add(ce, gbc); gbc.gridx = 3; gbc.gridy = 0; gbc.gridwidth = 2; gbc.fill = java.awt.GridBagConstraints.BOTH; sum.setPreferredSize(new java.awt.Dimension((int)((panel.getWidth()/4) * 1.5), panel.getHeight()/4)); panel2.add(sum, gbc); gbc.gridx = 0; gbc.gridy = 2; gbc.fill = java.awt.GridBagConstraints.BOTH; getContentPane().add(panel2, gbc); pack(); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); } private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); } public static void main(String args[]) { new JFrame_1().show(); } private JButton[] knap; private JButton komma; private JButton plusMinus; private JButton multipl; private JButton divider; private JButton plus; private JButton minus; private JButton c; private JButton ce; private JButton sum; private JPanel panel, panel2; private JTextField display; }