/** * Created : Mar 26, 2012 * * @author pquiring */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BasicPanel extends javax.swing.JPanel implements Display, ActionListener { /** * Creates new form MainPanel */ public BasicPanel(Backend backend) { initComponents(); divide.setText("\u00f7"); this.backend = backend; Insets zero = new Insets(0, 0, 0, 0); JButton b; for(int a=0;a<getComponentCount();a++) { Component c = getComponent(a); if (c instanceof JButton) { b = (JButton)c; b.addActionListener(this); b.setMargin(zero); } } } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { output = new javax.swing.JTextField(); n7 = new javax.swing.JButton(); n8 = new javax.swing.JButton(); n9 = new javax.swing.JButton(); n4 = new javax.swing.JButton(); n5 = new javax.swing.JButton(); n6 = new javax.swing.JButton(); n1 = new javax.swing.JButton(); n2 = new javax.swing.JButton(); n3 = new javax.swing.JButton(); n0 = new javax.swing.JButton(); dec = new javax.swing.JButton(); divide = new javax.swing.JButton(); multiple = new javax.swing.JButton(); minus = new javax.swing.JButton(); plus = new javax.swing.JButton(); allClear = new javax.swing.JButton(); open = new javax.swing.JButton(); close = new javax.swing.JButton(); eq = new javax.swing.JButton(); sqrt = new javax.swing.JButton(); x2 = new javax.swing.JButton(); output.setEditable(false); output.setHorizontalAlignment(javax.swing.JTextField.RIGHT); output.setText("0.0"); n7.setText("7"); n8.setText("8"); n9.setText("9"); n4.setText("4"); n5.setText("5"); n6.setText("6"); n1.setText("1"); n2.setText("2"); n3.setText("3"); n0.setText("0"); dec.setText("."); divide.setText("/"); multiple.setText("x"); minus.setText("-"); plus.setText("+"); allClear.setText("AC"); allClear.setToolTipText("All Clear"); open.setText("("); close.setText(")"); eq.setText("="); sqrt.setText("sqrt"); x2.setText("x^2"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(n0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(n1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(n4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(n7, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(n5, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(n6, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(multiple, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(open, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(close, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(n2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(n3, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(minus, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(sqrt, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(dec, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(eq, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(plus, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(x2, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(n8, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(n9, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(divide, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(allClear, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(0, 0, Short.MAX_VALUE)))) .addComponent(output, javax.swing.GroupLayout.DEFAULT_SIZE, 330, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(output, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(n7) .addComponent(n8) .addComponent(n9) .addComponent(divide) .addComponent(allClear)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(n4) .addComponent(n5) .addComponent(n6) .addComponent(multiple) .addComponent(open) .addComponent(close)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(n1) .addComponent(n2) .addComponent(n3) .addComponent(minus) .addComponent(sqrt)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(n0) .addComponent(dec) .addComponent(eq) .addComponent(plus) .addComponent(x2)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton allClear; private javax.swing.JButton close; private javax.swing.JButton dec; private javax.swing.JButton divide; private javax.swing.JButton eq; private javax.swing.JButton minus; private javax.swing.JButton multiple; private javax.swing.JButton n0; private javax.swing.JButton n1; private javax.swing.JButton n2; private javax.swing.JButton n3; private javax.swing.JButton n4; private javax.swing.JButton n5; private javax.swing.JButton n6; private javax.swing.JButton n7; private javax.swing.JButton n8; private javax.swing.JButton n9; private javax.swing.JButton open; private javax.swing.JTextField output; private javax.swing.JButton plus; private javax.swing.JButton sqrt; private javax.swing.JButton x2; // End of variables declaration//GEN-END:variables private Backend backend; public void setDisplay(String str) { output.setText(str); } public void actionPerformed(ActionEvent ae) { JButton b = (JButton)ae.getSource(); String txt = b.getText(); char first = txt.charAt(0); if (((first >= '0') && (first <= '9')) || (first == '.')) { backend.addDigit(first); } else { backend.addOperation(txt); } } public void cut() { output.cut(); } public void copy() { output.copy(); } public void setRadix(int rx) {} }