Hi everyone, I’m trying to create a java calculator program.
I have three files:
CalcControl -> CalcGUI -> CalcKeyboard
The CalcGUI extends JFrame and is instanced in CalcControl. I would like to create a JPanel in CalcKeyboard that can be added to CalcGUI, but I’m having problems pulling it into CalcGUI.
CalcControl:
public class CalcControl {
public static void main(String[] args) {
CalcGUI newCalc = new CalcGUI();
}
}
CalcGUI:
import javax.swing.*;
class CalcGUI extends JFrame {
JPanel mainPanel;
public CalcGUI() {
setSize(200,400);
setLocation(200,200);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
mainPanel = new JPanel();
mainPanel.setLayout(null);
CalcKeyboard newKeyboard = new CalcKeyboard();
newKeyboard.setSize(200,400);
add(newKeyboard);
add(mainPanel);
setVisible(true);
}
}
CalcKeyboard:
import javax.swing.*;
import java.util.ArrayList;
class CalcKeyboard extends JPanel {
JPanel keyPanel;
JButton key1,key2,key3,key4,key5,key6,key7,key8,key9,key0;
JButton addButton,subtractButton,multiplyButton,divideButton,decimalButton,equalsButton;
public CalcKeyboard() {
keyPanel = new JPanel();
keyPanel.setLayout(null);
ArrayList<JButton> keyList = new ArrayList<JButton>();
keyList.add(key1 = new JButton("1"));
keyList.add(key2 = new JButton("2"));
keyList.add(key3 = new JButton("3"));
keyList.add(addButton = new JButton("+"));
keyList.add(key4 = new JButton("4"));
keyList.add(key5 = new JButton("5"));
keyList.add(key6 = new JButton("6"));
keyList.add(subtractButton = new JButton("-"));
keyList.add(key7 = new JButton("7"));
keyList.add(key8 = new JButton("8"));
keyList.add(key9 = new JButton("9"));
keyList.add(multiplyButton = new JButton("X"));
keyList.add(key0 = new JButton("0"));
keyList.add(decimalButton = new JButton("."));
keyList.add(equalsButton = new JButton("="));
keyList.add(divideButton = new JButton("/"));
int row = 0;
int col = 0;
int h = 45;
int w = 45;
for (int n = 0; n < keyList.size(); n++) {
keyList.get(n).setBounds(col*w,row*h,w,h);
keyPanel.add(keyList.get(n));
if(col == 3) {
row++;
col = 0;
}
else
col++;
}
keyPanel.setVisible(true);
}
}
Any ideas why the CalcKeyboard won’t display when run? Thanks for any help.