hi ho
ich hab ein problem und zwar habe ich mir einen taschenrechner prgorammiert und will jetzt die fukntion hinzufügen das man hexadezimal zahlen addieren kann . die umrechnung von hexa zu dezimal funktioniert nur das addieren will iwi nicht :/ .
vllt kann mir ja jemand helfen .
hier is mal der Quellcode:
lg Venomlol
ich hab ein problem und zwar habe ich mir einen taschenrechner prgorammiert und will jetzt die fukntion hinzufügen das man hexadezimal zahlen addieren kann . die umrechnung von hexa zu dezimal funktioniert nur das addieren will iwi nicht :/ .
vllt kann mir ja jemand helfen .
hier is mal der Quellcode:
Java:
/**
* @(#)taschenrechner.java
*
* taschenrechner application
*
* @author
* @version 1.00 2009/8/4
*/
//Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.Scanner;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class taschenrechner extends Frame
{
JButton A,B,C,D,E,F,Dez,Hexa,Beenden,Info,Taste_0,Taste_1,Taste_2, Taste_3,Taste_4,Taste_5 , Taste_6, Taste_7, Taste_8,Taste_9,
Taste_d, Taste_c, Taste_m,Taste_p, Taste_w, Taste_g;
double Speicher =0;
double Zwischenwert =0;
boolean Operand = false;
char akt_Operation ='k';
boolean neue_Zahl = true;
boolean Vorkomma = true;
boolean hexazahl = true ;
String hexhex ;
JTextField Anz;
double Operand1, Operand2;
class Mein_WindowListener extends WindowAdapter
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
}
taschenrechner(String titel)
{
super(titel);
JFrame f = new JFrame( "Taschenrechner" );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setSize(200,300) ;
f.setLayout(new GridLayout(2,5));
//Panel erstellen
JPanel P1 = new JPanel();
P1.setLayout( new GridLayout(2,4));
f.add (P1);
JPanel P2 = new JPanel();
P2.setLayout( new GridLayout(5,4));
JPanel P3 = new JPanel();
P3.setLayout( new GridLayout(0,1,1,1));
JPanel P4 = new JPanel();
P4.setLayout( new GridLayout(0,3,10,4));
f.add (P4);
P1.add (P3);
P1.add (P4);
f.add( P2);
Anz = new JTextField(10); // 10 Zeichen breit
Anz.setEditable (false); //nicht editierbar
Anz.setText("0.0");
Beenden=new JButton ("");
Beenden.setIcon(new ImageIcon ("exit.png"));
Taste_0 = new JButton("0");
Taste_1 = new JButton("1");
Taste_2 = new JButton("2");
Taste_3 = new JButton("3");
Taste_4 = new JButton("4");
Taste_5 = new JButton("5");
Taste_6 = new JButton("6");
Taste_7 = new JButton("7");
Taste_8 = new JButton("8");
Taste_9 = new JButton("9");
Taste_d = new JButton("/");
Taste_c = new JButton("clr");
Taste_m = new JButton("*");
Taste_p = new JButton("+");
Taste_w = new JButton("-");
Taste_g = new JButton("=");
Info = new JButton("=");
Hexa = new JButton("Hex");
Dez = new JButton("Dez");
A = new JButton("A");
B = new JButton("B");
C = new JButton("C");
D = new JButton("D");
E = new JButton("E");
F = new JButton("F");
JOptionPane.showMessageDialog(null, "© Gyula Fügedi 2009", "Copyright Taschenrechner®", JOptionPane.INFORMATION_MESSAGE);
P3.add(Anz);
P4.add(Taste_w);
P4.add(Taste_c);
P2.add(Taste_1);
P2.add(Taste_2);
P2.add(Taste_3);
P2.add(Taste_4);
P2.add(Taste_5);
P2.add(Taste_6);
P2.add(Taste_7);
P2.add(Taste_8);
P2.add(Taste_9);
P2.add(Taste_0);
P4.add(Taste_d);
P4.add(Taste_m);
P4.add(Taste_p);
P4.add(Taste_g);
P4.add(Dez);
P4.add(Hexa);
P2.add(A);
P2.add(B);
P2.add(C);
P2.add(D);
P2.add(E);
P2.add(F);
P4.add(new JLabel(""));
f.setVisible(true);
addWindowListener(new Mein_WindowListener());
Taste_0.addActionListener(new drücken());
Taste_1.addActionListener(new drücken());
Taste_2.addActionListener(new drücken());
Taste_3.addActionListener(new drücken());
Taste_4.addActionListener(new drücken());
Taste_5.addActionListener(new drücken());
Taste_6.addActionListener(new drücken());
Taste_7.addActionListener(new drücken());
Taste_8.addActionListener(new drücken());
Taste_9.addActionListener(new drücken());
Taste_d.addActionListener(new drücken());
Taste_c.addActionListener(new drücken());
Taste_m.addActionListener(new drücken());
Taste_p.addActionListener(new drücken());
Taste_w.addActionListener(new drücken());
Taste_g.addActionListener(new drücken());
Beenden.addActionListener(new drücken());
Hexa.addActionListener(new Umrechnen());
Dez.addActionListener(new Rückrechnen());
A.addActionListener(new drücken());
B.addActionListener(new drücken());
C.addActionListener(new drücken());
D.addActionListener(new drücken());
E.addActionListener(new drücken());
F.addActionListener(new drücken());
}
public class Rückrechnen implements ActionListener
{
public void actionPerformed(ActionEvent o)
{
String hexString="ff";
hexString= Anz.getText();
int i = Integer.valueOf(hexString, 16).intValue();
Anz.setText(Integer.toString(i));
hexazahl= true ;
}
}
class Umrechnen implements ActionListener
{
public void actionPerformed(ActionEvent o)
{
int zahl = 0;
String hexazahl ="";
zahl = Integer.valueOf(Anz.getText()).intValue();
do {
if ((zahl%16)< 10) { hexazahl = zahl%16 + hexazahl; }
if ((zahl%16)==10) { hexazahl = "A" + hexazahl; }
if ((zahl%16)==11) { hexazahl = "B" + hexazahl; }
if ((zahl%16)==12) { hexazahl = "C" + hexazahl; }
if ((zahl%16)==13) { hexazahl = "D" + hexazahl; }
if ((zahl%16)==14) { hexazahl = "E" + hexazahl; }
if ((zahl%16)==15) { hexazahl = "F" + hexazahl; }
zahl = zahl/16;
} while (zahl > 0);
Anz.setText(hexazahl);
}
}
class drücken implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str, akt_Text;
int index;
char Zeichen;
double Wert;
str = e.getActionCommand();
Zeichen = str.charAt(0);
switch(Zeichen)
{
case 'c' :
Anz.setText("0.0");
Speicher =0;
Zwischenwert =0;
akt_Operation ='k';
Operand = false;
Vorkomma = true;
neue_Zahl = true;
break;
case '+':
case '-':
case '*':
case '/':
case '%':
if(akt_Operation =='k'){
Zwischenwert = Double.valueOf(Anz.getText()).doubleValue();
Operand=true;
akt_Operation=Zeichen;
neue_Zahl=true;
break;
}
if(Operand == true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen;
break;
}
case '=':
if(akt_Operation!='k' && Operand==true){
{
Operand1=Double.valueOf(Zwischenwert).doubleValue(); ;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
}
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen='k';
Operand=false;
break;
}
case '.':
if(neue_Zahl == true){
Anz.setText("0");
neue_Zahl=false;
}
if(Vorkomma==true){
Vorkomma=false;
akt_Text=Anz.getText();
akt_Text += ".";
Anz.setText(akt_Text);
}
break;
default:
if(neue_Zahl==true)
{
neue_Zahl=false;
Anz.setText("");
}
akt_Text=Anz.getText();
Anz.setText("");
Anz.setText(akt_Text + Zeichen);
break;
}
}
}
void Berechnung_ausführen()
{
double Operand1, Operand2;
double Ergebnis = 0;
Operand1=Zwischenwert;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
int zahl;
switch(akt_Operation)
{
case '+': Rückrechnen(hexhex); Anz.setText("");
Ergebnis = Operand1 + Operand2;
if (hexazahl = true ){
}
break;
case '-': Ergebnis = Operand1 - Operand2;
break;
case '*': Ergebnis = Operand1 * Operand2;
break;
case '%': Ergebnis = Operand1 % Operand2;
case '/': if(Operand2!=0)
Ergebnis = Operand1 / Operand2;
else
Ergebnis = 0;
break;
}
Zwischenwert = Ergebnis;
Anz.setText(Double.toString(Ergebnis));
}
private int Rückrechnen(String hexazahl) {
// TODO Auto-generated method stub
String hexString="ff";
hexString= Anz.getText();
int i = Integer.valueOf(hexString, 16).intValue();
Anz.setText(Integer.toString(i));
return(i);
}
public static void main(String args[])
{
taschenrechner Fenster = new taschenrechner("Taschenrechner");
}}
lg Venomlol