2011-11-24, 12:46
#1
Tjena alla fbare!, jag har ett litet problem med min programerings uppgift i java , upgiften var att gra en enkel minirknare och sedan swinga den vilket jag har gjort men jag fr ett problem nr jag kompilerar den.
S jag bifogar koden hr och observera att felet ligger p rad 31 enligt JCs Buildreport. Observera ocks att vissa knappar inte har ftt ngon funktion n men jag vill ha swingen klar s att jag kan forstta
Hr kommer koden:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
/** skapar en enkel rknare med det vanligaste rknestten */
public class CounterApplet extends JFrame implements ActionListener
{
private JTextField t1;
private JButton b1;
private JButton b2;
private JButton bIndex[] = new JButton[24];
private double tal = 0;
private double talTemp = 0;
private String sign;
private JPanel p1;
private JPanel p2;
private JPanel p3;
/** initierar Rknaren smo en applet */
public CounterApplet()
{
setLayout(new BorderLayout());
setBackground(Color.lightGray);
p1 = new JPanel();
p1.setLayout(new FlowLayout());
p1.add(t1 = new TextField(25));
t1.setFont(new Font("Sans Serif", Font.BOLD, 12));
t1.setEnabled(false);
t1.setText(""+tal);
p2 = new JPanel();
p2.setLayout(new GridLayout(4,6,4,4));
for(int i = 0; i<24; i++)
{
bIndex[i] = new JButton();
bIndex[i].addActionListener(this);
bIndex[i].setFont(new Font("Sans Serif", Font.BOLD, 16));
bIndex[i].setForeground(Color.blue);
p2.add(bIndex[i]);
}
bIndex[0].setLabel("7");
bIndex[1].setLabel("8");
bIndex[2].setLabel("9");
bIndex[3].setForeground(Color.red);
bIndex[3].setLabel("/");
bIndex[4].setLabel("sqrt");
bIndex[5].setLabel("sin");
bIndex[6].setLabel("4");
bIndex[7].setLabel("5");
bIndex[8].setLabel("6");
bIndex[9].setForeground(Color.red);
bIndex[9].setLabel("*");
bIndex[10].setLabel("%");
bIndex[11].setLabel("cos");
bIndex[12].setLabel("1");
bIndex[13].setLabel("2");
bIndex[14].setLabel("3");
bIndex[15].setForeground(Color.red);
bIndex[15].setLabel("-");
bIndex[16].setLabel("1/x");
bIndex[17].setLabel("tan");
bIndex[18].setLabel("0");
bIndex[19].setLabel("+/-");
bIndex[20].setLabel(",");
bIndex[21].setForeground(Color.red);
bIndex[21].setLabel("+");
bIndex[22].setLabel("=");
bIndex[23].setLabel("log");
p3 = new JPanel();
p3.setLayout(new GridLayout(1,2,4,4));
b1 = new JButton("CE");
b1.setFont(new Font("Sans Serif", Font.BOLD, 16));
b1.setForeground(Color.red);
p3.add(b1,"South");
b2 = new JButton("C");
b2.setFont(new Font("Sans Serif", Font.BOLD, 16));
b2.setForeground(Color.red);
p3.add(b2,"South");
b1.addActionListener(this);
b2.addActionListener(this);
add(p1,"North");
add(p2,"Center");
add(p3,"South");
setVisible(true);
pack();
}
/** styr hndelsehanteringen i rknaren */
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bIndex[0]) //Knappen "7"
{
tal = 10*tal + 7;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[1]) //Knappen "8"
{
tal = 10*tal + 8;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[2]) //Knappen "9"
{
tal = 10*tal + 9;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[3]) //knappen "/"
{
count();
//sign = "sqrt";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[4]) //Knappen "sqrt"
{
sign = "sqrt";
talTemp = tal;
tal = Math.sqrt(talTemp);
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[5]) //Knappen "4"
{
tal = 10*tal + 4;
t1.setText(""+tal);
}
if(e.getSource() == bIndex[6]) //Knappen "5"
{
tal = 10*tal + 5;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[7]) //Knappen "6"
{
tal = 10*tal + 6;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[8]) //Knappen "*"
{
count();
sign = "*";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[9]) //Knappen "%"
{
sign ="%";
talTemp = tal;
tal = talTemp * 0.001;
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[10]) //Knappen "1"
{
tal = 10*tal + 1;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[11]) //Knappen "2"
{
tal = 10*tal + 2;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[12]) //Knappen "3"
{
tal = 10*tal + 3;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[13]) //Knappen "-"
{
count();
sign = "-";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[14]) //Knappen "1/x"
{
sign = "1/x";
talTemp = tal;
tal = 1/talTemp;
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[15]) //Knappen "0"
{
tal = 10*tal + 0;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[16]) //Knappen "+/-"
{
talTemp = tal;
tal = tal*(-1);
t1.setText("" + tal);
}
if(e.getSource() == bIndex[17]) //Ej implementerad
{
t1.setText("" + tal);
}
if(e.getSource() == bIndex[18]) //Knappen "+"
{
count();
sign = "+";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[19]) //Knappen "="
{
count();
tal = talTemp;
sign = " ";
t1.setText("" + talTemp);
}
if(e.getSource() == b1) //Knappen CE
{
tal = 0;
t1.setText("" + tal);
}
if(e.getSource() == b2) //Knappen C
{
tal = 0;
talTemp= 0;
t1.setText(" " + tal);
}
}
/** berknar resultatet av den matematiska operationen */
public void count()
{
if(talTemp>0)
{
if(sign == "+")
tal = talTemp + tal;
if(sign == "-")
tal = talTemp - tal;
if(sign == "*")
tal = talTemp * tal;
if(sign == "/")
tal = talTemp / tal;
if(sign == "%")
tal = talTemp * 0.01;
if(sign == "sqrt")
tal = Math.sqrt(talTemp);
if(sign == "1/x")
tal = 1 /talTemp;
if(sign == "=")
tal = talTemp + tal;
}
talTemp = tal;
tal = 0;
}
public static void main(String args[])
{
CounterApplet kalle = new CounterApplet();
}
}
vill ha ett svar eller frklaring s att jag kan fixa det p egen hand helst
S man lr sig ngot
S jag bifogar koden hr och observera att felet ligger p rad 31 enligt JCs Buildreport. Observera ocks att vissa knappar inte har ftt ngon funktion n men jag vill ha swingen klar s att jag kan forstta

Hr kommer koden:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
/** skapar en enkel rknare med det vanligaste rknestten */
public class CounterApplet extends JFrame implements ActionListener
{
private JTextField t1;
private JButton b1;
private JButton b2;
private JButton bIndex[] = new JButton[24];
private double tal = 0;
private double talTemp = 0;
private String sign;
private JPanel p1;
private JPanel p2;
private JPanel p3;
/** initierar Rknaren smo en applet */
public CounterApplet()
{
setLayout(new BorderLayout());
setBackground(Color.lightGray);
p1 = new JPanel();
p1.setLayout(new FlowLayout());
p1.add(t1 = new TextField(25));
t1.setFont(new Font("Sans Serif", Font.BOLD, 12));
t1.setEnabled(false);
t1.setText(""+tal);
p2 = new JPanel();
p2.setLayout(new GridLayout(4,6,4,4));
for(int i = 0; i<24; i++)
{
bIndex[i] = new JButton();
bIndex[i].addActionListener(this);
bIndex[i].setFont(new Font("Sans Serif", Font.BOLD, 16));
bIndex[i].setForeground(Color.blue);
p2.add(bIndex[i]);
}
bIndex[0].setLabel("7");
bIndex[1].setLabel("8");
bIndex[2].setLabel("9");
bIndex[3].setForeground(Color.red);
bIndex[3].setLabel("/");
bIndex[4].setLabel("sqrt");
bIndex[5].setLabel("sin");
bIndex[6].setLabel("4");
bIndex[7].setLabel("5");
bIndex[8].setLabel("6");
bIndex[9].setForeground(Color.red);
bIndex[9].setLabel("*");
bIndex[10].setLabel("%");
bIndex[11].setLabel("cos");
bIndex[12].setLabel("1");
bIndex[13].setLabel("2");
bIndex[14].setLabel("3");
bIndex[15].setForeground(Color.red);
bIndex[15].setLabel("-");
bIndex[16].setLabel("1/x");
bIndex[17].setLabel("tan");
bIndex[18].setLabel("0");
bIndex[19].setLabel("+/-");
bIndex[20].setLabel(",");
bIndex[21].setForeground(Color.red);
bIndex[21].setLabel("+");
bIndex[22].setLabel("=");
bIndex[23].setLabel("log");
p3 = new JPanel();
p3.setLayout(new GridLayout(1,2,4,4));
b1 = new JButton("CE");
b1.setFont(new Font("Sans Serif", Font.BOLD, 16));
b1.setForeground(Color.red);
p3.add(b1,"South");
b2 = new JButton("C");
b2.setFont(new Font("Sans Serif", Font.BOLD, 16));
b2.setForeground(Color.red);
p3.add(b2,"South");
b1.addActionListener(this);
b2.addActionListener(this);
add(p1,"North");
add(p2,"Center");
add(p3,"South");
setVisible(true);
pack();
}
/** styr hndelsehanteringen i rknaren */
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bIndex[0]) //Knappen "7"
{
tal = 10*tal + 7;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[1]) //Knappen "8"
{
tal = 10*tal + 8;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[2]) //Knappen "9"
{
tal = 10*tal + 9;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[3]) //knappen "/"
{
count();
//sign = "sqrt";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[4]) //Knappen "sqrt"
{
sign = "sqrt";
talTemp = tal;
tal = Math.sqrt(talTemp);
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[5]) //Knappen "4"
{
tal = 10*tal + 4;
t1.setText(""+tal);
}
if(e.getSource() == bIndex[6]) //Knappen "5"
{
tal = 10*tal + 5;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[7]) //Knappen "6"
{
tal = 10*tal + 6;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[8]) //Knappen "*"
{
count();
sign = "*";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[9]) //Knappen "%"
{
sign ="%";
talTemp = tal;
tal = talTemp * 0.001;
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[10]) //Knappen "1"
{
tal = 10*tal + 1;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[11]) //Knappen "2"
{
tal = 10*tal + 2;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[12]) //Knappen "3"
{
tal = 10*tal + 3;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[13]) //Knappen "-"
{
count();
sign = "-";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[14]) //Knappen "1/x"
{
sign = "1/x";
talTemp = tal;
tal = 1/talTemp;
count();
t1.setText("" + tal);
}
if(e.getSource() == bIndex[15]) //Knappen "0"
{
tal = 10*tal + 0;
t1.setText("" + tal);
}
if(e.getSource() == bIndex[16]) //Knappen "+/-"
{
talTemp = tal;
tal = tal*(-1);
t1.setText("" + tal);
}
if(e.getSource() == bIndex[17]) //Ej implementerad
{
t1.setText("" + tal);
}
if(e.getSource() == bIndex[18]) //Knappen "+"
{
count();
sign = "+";
t1.setText("" + talTemp);
}
if(e.getSource() == bIndex[19]) //Knappen "="
{
count();
tal = talTemp;
sign = " ";
t1.setText("" + talTemp);
}
if(e.getSource() == b1) //Knappen CE
{
tal = 0;
t1.setText("" + tal);
}
if(e.getSource() == b2) //Knappen C
{
tal = 0;
talTemp= 0;
t1.setText(" " + tal);
}
}
/** berknar resultatet av den matematiska operationen */
public void count()
{
if(talTemp>0)
{
if(sign == "+")
tal = talTemp + tal;
if(sign == "-")
tal = talTemp - tal;
if(sign == "*")
tal = talTemp * tal;
if(sign == "/")
tal = talTemp / tal;
if(sign == "%")
tal = talTemp * 0.01;
if(sign == "sqrt")
tal = Math.sqrt(talTemp);
if(sign == "1/x")
tal = 1 /talTemp;
if(sign == "=")
tal = talTemp + tal;
}
talTemp = tal;
tal = 0;
}
public static void main(String args[])
{
CounterApplet kalle = new CounterApplet();
}
}
vill ha ett svar eller frklaring s att jag kan fixa det p egen hand helst

