/** Make the frame for the user interface. */ private void makeFrame() { frame = new JFrame(calc.getTitle()); JPanel contentPane = (JPanel) frame.getContentPane(); contentPane.setLayout(new BorderLayout(8, 8)); contentPane.setBorder(new EmptyBorder(20, 20, 20, 20)); display = new JTextField(); contentPane.add(display, BorderLayout.NORTH); JPanel buttonPanel = new JPanel(new GridLayout(5, 4)); addButton(buttonPanel, "7"); addButton(buttonPanel, "8"); addButton(buttonPanel, "9"); addButton(buttonPanel, "Cl"); // had to change this, so it works in hexadecimal mode addButton(buttonPanel, "4"); addButton(buttonPanel, "5"); addButton(buttonPanel, "6"); addButton(buttonPanel, "?"); addButton(buttonPanel, "1"); addButton(buttonPanel, "2"); addButton(buttonPanel, "3"); addButton(buttonPanel, "0"); addButton(buttonPanel, "+"); addButton(buttonPanel, "-"); // Exercise 1 division addButton(buttonPanel, "/"); // Exercise 1 multi addButton(buttonPanel, "*"); addButton(buttonPanel, "="); contentPane.add(buttonPanel, BorderLayout.CENTER); status = new JLabel(calc.getAuthor()); contentPane.add(status, BorderLayout.SOUTH); // hexa stuff JPanel hexContainer = new JPanel(new GridLayout(2, 1)); JCheckBox hexBox = new JCheckBox("Hexadecimal mode"); hexBox.addActionListener(this); hexContainer.add(hexBox); hexPanel = new JPanel(new GridLayout(2, 3)); addButton(hexPanel, "A"); addButton(hexPanel, "B"); addButton(hexPanel, "C"); addButton(hexPanel, "D"); addButton(hexPanel, "E"); addButton(hexPanel, "F"); hexContainer.add(hexPanel); hexPanel.setVisible(false); // hide it because we start in decimal mode contentPane.add(hexContainer, BorderLayout.EAST); frame.pack(); }
/** * Toggle the info display in the calculator's status area between the author and version * information. */ private void showInfo() { if (showingAuthor) status.setText(calc.getVersion()); else status.setText(calc.getAuthor()); showingAuthor = !showingAuthor; }