GridBagLayout problem
843806Nov 23 2007 — edited Nov 24 2007When I run the code below, why does the scroll pane not show as 3(width)*5(height)?
Basically, I want 10*10 grids.
Thank you for advance.
-------------------------
import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.*;
public class Calculator {
public Calculator() {
//button
JButton buttonEmpty = new JButton("");
JButton buttonCE = new JButton("CE");
JButton buttonC = new JButton("C");
JButton buttonDivide = new JButton("/");
JButton buttonDelete = new JButton("<--");
JButton buttonMPlus = new JButton("M+");
JButton buttonMS = new JButton("MS");
JButton buttonMC = new JButton("MC");
JButton buttonMR = new JButton("MR");
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
JButton button5 = new JButton("5");
JButton button6 = new JButton("6");
JButton button7 = new JButton("7");
JButton button8 = new JButton("8");
JButton button9 = new JButton("9");
JButton button0 = new JButton("0");
JButton buttonMultiply = new JButton("*");
JButton buttonMod = new JButton("%");
JButton buttonMinus = new JButton("-");
JButton button1X = new JButton("1/X");
JButton buttonPlusMinus = new JButton("+/-");
JButton buttonDecimalPoint = new JButton(".");
JButton buttonPlus = new JButton("+");
JButton buttonEqual = new JButton("=");
//
JTextArea outputArea = new JTextArea("");
JScrollPane scrollPane = new JScrollPane
(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JTextArea textArea = new JTextArea("0");
//
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu aboutMenu = new JMenu("About");
JMenu helpMenu = new JMenu("Help");
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(aboutMenu);
menuBar.add(helpMenu);
//set look and feel
try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) { }
//Frame
JFrame f = new JFrame("Calculator");
Container cont = f.getContentPane();
cont.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.insets = new Insets(5, 5, 5, 5);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 3;
gbc.gridheight = 5;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
cont.add(scrollPane, gbc);
gbc.gridx = 3;
gbc.gridy = 0;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
cont.add(buttonEmpty, gbc);
gbc.gridx = 3;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMC, gbc);
gbc.gridx = 3;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMR, gbc);
gbc.gridx = 3;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMS, gbc);
gbc.gridx = 3;
gbc.gridy = 4;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMPlus, gbc);
gbc.gridx = 4;
gbc.gridy = 0;
gbc.gridwidth = 5;
gbc.gridheight = 1;
cont.add(textArea, gbc);
gbc.gridx = 4;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button7, gbc);
gbc.gridx = 4;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button4, gbc);
gbc.gridx = 4;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button1, gbc);
gbc.gridx = 4;
gbc.gridy = 4;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button0, gbc);
gbc.gridx = 5;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button8, gbc);
gbc.gridx = 5;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button5, gbc);
gbc.gridx = 5;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button2, gbc);
gbc.gridx = 5;
gbc.gridy = 4;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonPlusMinus, gbc);
gbc.gridx = 6;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button9, gbc);
gbc.gridx = 6;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button6, gbc);
gbc.gridx = 6;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button3, gbc);
gbc.gridx = 6;
gbc.gridy = 4;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonDecimalPoint, gbc);
gbc.gridx = 7;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonDivide, gbc);
gbc.gridx = 7;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMultiply, gbc);
gbc.gridx = 7;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMinus, gbc);
gbc.gridx = 7;
gbc.gridy = 4;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonPlus, gbc);
gbc.gridx = 8;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonCE, gbc);
gbc.gridx = 8;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonMod, gbc);
gbc.gridx = 8;
gbc.gridy = 3;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(button1X, gbc);
gbc.gridx = 8;
gbc.gridy = 4;
gbc.gridwidth = 2;
gbc.gridheight = 1;
cont.add(buttonEqual, gbc);
gbc.gridx = 9;
gbc.gridy = 1;
gbc.gridwidth = 1;
gbc.gridheight = 1;
cont.add(buttonDelete, gbc);
gbc.gridx = 9;
gbc.gridy = 2;
gbc.gridwidth = 1;
gbc.gridheight = 2;
cont.add(buttonC, gbc);
f.setJMenuBar(menuBar);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(500, 300);
f.setResizable(false);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}