Hallo und guten tag 
ich habe ein problem, ich wollte ein taschen rechner progamiren der auch zahlen in binair und hexadecimal umwandelt sobalt man auf einen button klickt leider bekomm ich dass nicht hin, programmier erst seit einem Jahr
und dass ist auch noch meine erstes programm in awt.
Also am anfang als ich den taschen reschner programmirt habe so weit so gut, er konnt auch einfache reschnungen durch führen 22 + 35 = 57 aber dann als ich gemerk habe dass ich in String und nich in Doubel hätte schreiben sollen für dass umwanndeln von zahlen in Binair code habe ich nur noch fehler meldungen :bahnhof:.
Dann hab ich gelessen :rtfm: dass mann die zahlen einfach spliten soll die der nutzer ein gibt dass heist wenn er 22.+.35.=eingibt dass mann dass splitet 22 + 37 = so weit bin ich gekommen dass er dass resultat aus rechnet und so gar dass wenn er 7.bin.= ein gibt dass er 111 heraus gibt. aber als ich dass in den taschen rechner einfügen habe seit dem start er nich mehr und ich finde den fehler nicht ???:L.
und da ist noch et wass ich weis nicht wie ich die button so einstelle dass si nicht mehr "22" "+" "35" "=" eingeben sonder das "22.+.35.=" ??
oder was kann ich da tun ich poste mall den tachenrechner mit vielleicht hab ihr eine idee!
ich habe ein problem, ich wollte ein taschen rechner progamiren der auch zahlen in binair und hexadecimal umwandelt sobalt man auf einen button klickt leider bekomm ich dass nicht hin, programmier erst seit einem Jahr
Also am anfang als ich den taschen reschner programmirt habe so weit so gut, er konnt auch einfache reschnungen durch führen 22 + 35 = 57 aber dann als ich gemerk habe dass ich in String und nich in Doubel hätte schreiben sollen für dass umwanndeln von zahlen in Binair code habe ich nur noch fehler meldungen :bahnhof:.
Dann hab ich gelessen :rtfm: dass mann die zahlen einfach spliten soll die der nutzer ein gibt dass heist wenn er 22.+.35.=eingibt dass mann dass splitet 22 + 37 = so weit bin ich gekommen dass er dass resultat aus rechnet und so gar dass wenn er 7.bin.= ein gibt dass er 111 heraus gibt. aber als ich dass in den taschen rechner einfügen habe seit dem start er nich mehr und ich finde den fehler nicht ???:L.
und da ist noch et wass ich weis nicht wie ich die button so einstelle dass si nicht mehr "22" "+" "35" "=" eingeben sonder das "22.+.35.=" ??
oder was kann ich da tun ich poste mall den tachenrechner mit vielleicht hab ihr eine idee!
Java:
package Calculatrise;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculatrise
{
public static void main(String[] args)
{
CalculatriseFrame frame = new CalculatriseFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class CalculatriseFrame extends JFrame
{
public CalculatriseFrame()
{
setTitle("Calculatrise");
CalculatrisePanel panel = new CalculatrisePanel();
add(panel);
pack();
}
}
class CalculatrisePanel extends JPanel
{
public CalculatrisePanel()
{
setLayout(new BorderLayout());
resulta = "0";
lastCommand = "=";
start = true;
display = new JButton("0");
display.setEnabled(false);
add(display, BorderLayout.NORTH);
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
panel = new JPanel();
panel.setLayout(new GridLayout(4, 5));
addButton("7", insert);
addButton("8", insert);
addButton("9", insert);
addButton("/", command);
addButton("oct", command);
addButton("4", insert);
addButton("5", insert);
addButton("6", insert);
addButton("*", command);
addButton("bin", command);
addButton("1", insert);
addButton("2", insert);
addButton("3", insert);
addButton("-", command);
addButton("hex", command);
addButton("", insert);
addButton("0", insert);
addButton(".", insert);
addButton("+", command);
addButton("=", command);
add(panel, BorderLayout.CENTER);
}
private void addButton(String label, ActionListener listener)
{
JButton button = new JButton(label);
button.addActionListener(listener);
panel.add(button);
}
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String input = event.getActionCommand();
if (start)
{
display.setText("");
start = false;
}
display.setText(display.getText() + input);
}
}
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command = event.getActionCommand();
if (start)
{
if (command.equals("-"))
{
display.setText(command);
start = false;
}
else
lastCommand = command;
}
else
{
lastCommand = command;
start = true;
}
}
}
public void calculate(double valeur)
{
int x=0;
int a;
int b;
String[] splittArray = lastCommand.split("\\.");
if (splittArray[1].compareTo("+") == 0){
a = Integer.parseInt(splittArray[0]);
b = Integer.parseInt(splittArray[2]);
x=a+b;
}
else if (splittArray[1].compareTo("-") == 0){
a = Integer.parseInt(splittArray[0]);
b = Integer.parseInt(splittArray[2]);
x=a-b;
}
else if (splittArray[1].compareTo("/") == 0){
a = Integer.parseInt(splittArray[0]);
b = Integer.parseInt(splittArray[2]);
x=a/b;
}
else if (splittArray[1].compareTo("*") == 0){
a = Integer.parseInt(splittArray[0]);
b = Integer.parseInt(splittArray[2]);
x=a*b;
}
resulta = Integer.toString(x);
if (splittArray[1].equals("oct")) {
a = Integer.parseInt(splittArray[0]);
resulta = Integer.toOctalString(a);
}
else if (splittArray[1].equals("bin")) {
a = Integer.parseInt(splittArray[0]);
resulta = Integer.toBinaryString(a);
}
else if (splittArray[1].equals("hex")) {
a = Integer.parseInt(splittArray[0]);
resulta = Integer.toHexString(a);
}
display.setText(resulta);
}
private JButton display;
private JPanel panel;
private String resulta;
private String lastCommand;
private boolean start;
}