V
VegasFreak
Gast
Guten Abend,
ich versuche es nun das erste mal in diesem Forum und hoffe auf kompetente Hilfe...aber noch bin ich sehr zuversichtlich!
Ich arbeite momentan an einem Programm, welces mit das Umrechnen von Dezimalzahlen in andere Zahlensysteme ermöglicht.
Das funktioniert soweit sehr gut, jedoch gibt es beim Umrechnen ins Hexadezimalsystem keinen syntaktischen aber einen symmantischen Fehler (ich hoffe die zwei Fremdwörter sind richtig geschrieben
).
Anbei der Code und ich hoffe, dass ihr mir helfen könnt!
Beste Grüße
VegasFreak
[JAVA=182]import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
public class gui extends JFrame
{
public JButton knopf;
public JTextField f_zahl, f_erg, f_div;
public JRadioButton bin, oct, hex;
public ActionLauscher ali;
int zahl, divisor, ergebnis;
String rest = "";
public gui()
{
super ("Dezimal in Binär - Rechner!");
ali = new ActionLauscher();
knopf = new JButton("Calculate!");
f_zahl = new JTextField("Deine Zahl eingeben!");
f_erg = new JTextField("Ergebnis ?!");
f_div = new JTextField("Divisor");
bin = new JRadioButton("Binärsystem");
oct = new JRadioButton("Octalsystem");
hex = new JRadioButton("Hexadezimal");
knopf.setBounds(60, 130, 100, 20);
knopf.addActionListener(ali);
f_zahl.setBounds(10,10, 200, 50);
f_erg.setBounds(10, 170, 200, 50);
f_div.setBounds(10, 65, 200, 50);
//bin.setBounds(250, 10, 100, 20);
//oct.setBounds(250, 40, 100, 20);
//hex.setBounds(250, 70, 100, 20);
this.add(knopf);
this.add(f_zahl);
this.add(f_erg);
this.add(f_div);
this.add(bin);
this.add(oct);
this.add(hex);
this.setBounds(500, 250, 500, 300);
this.setLayout(null);
this.setVisible(true);
}
public void getIt()
{
zahl = Integer.parseInt(f_zahl.getText());
divisor = Integer.parseInt(f_div.getText());
if(divisor==16)
{
zerlegeHex();
}
else
{
zerlege();
}
}
public void zerlege()
{
while(zahl>0)
{
ergebnis = zahl/divisor;
rest = Integer.toString(zahl%divisor)+rest;
zahl = ergebnis;
}
ausgabe();
}
public void zerlegeHex()
{
String q = "";
String calc = "";
while(zahl>0)
{
ergebnis = zahl/divisor;
calc = Integer.toString(zahl%divisor);
if(calc.equals(10))
{
calc = "A";
rest = calc+rest;
}
else
{
if(calc.equals(11))
{
calc = "B";
rest = calc+rest;
}
else
{
if(calc.equals(12))
{
calc = "C";
rest = calc+rest;
}
else
{
if(rest.equals(13))
{
calc = "D";
rest = calc+rest;
}
else
{
if(calc.equals(14))
{
calc = "E";
rest = calc+rest;
}
else
{
if(calc.equals(15))
{
calc = "F";
rest = calc+rest;
}
else
{
rest = calc+rest;
}
}
}
}
}
}
}
ausgabe();
}
public void ausgabe()
{
f_erg.setText(rest);
}
public class ActionLauscher implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==oct)
{
divisor = 8;
}
else
{
if(e.getSource()==bin)
{
divisor = 2;
}
else
{
if(e.getSource()==hex)
{
divisor = 16;
}
else
{
if(e.getSource()==knopf)
{
getIt();
}
}
}
}
}
}
public static void main(String[] args)
{
gui gu = new gui();
}
}
[/code]
ich versuche es nun das erste mal in diesem Forum und hoffe auf kompetente Hilfe...aber noch bin ich sehr zuversichtlich!
Ich arbeite momentan an einem Programm, welces mit das Umrechnen von Dezimalzahlen in andere Zahlensysteme ermöglicht.
Das funktioniert soweit sehr gut, jedoch gibt es beim Umrechnen ins Hexadezimalsystem keinen syntaktischen aber einen symmantischen Fehler (ich hoffe die zwei Fremdwörter sind richtig geschrieben
Anbei der Code und ich hoffe, dass ihr mir helfen könnt!
Beste Grüße
VegasFreak
[JAVA=182]import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
public class gui extends JFrame
{
public JButton knopf;
public JTextField f_zahl, f_erg, f_div;
public JRadioButton bin, oct, hex;
public ActionLauscher ali;
int zahl, divisor, ergebnis;
String rest = "";
public gui()
{
super ("Dezimal in Binär - Rechner!");
ali = new ActionLauscher();
knopf = new JButton("Calculate!");
f_zahl = new JTextField("Deine Zahl eingeben!");
f_erg = new JTextField("Ergebnis ?!");
f_div = new JTextField("Divisor");
bin = new JRadioButton("Binärsystem");
oct = new JRadioButton("Octalsystem");
hex = new JRadioButton("Hexadezimal");
knopf.setBounds(60, 130, 100, 20);
knopf.addActionListener(ali);
f_zahl.setBounds(10,10, 200, 50);
f_erg.setBounds(10, 170, 200, 50);
f_div.setBounds(10, 65, 200, 50);
//bin.setBounds(250, 10, 100, 20);
//oct.setBounds(250, 40, 100, 20);
//hex.setBounds(250, 70, 100, 20);
this.add(knopf);
this.add(f_zahl);
this.add(f_erg);
this.add(f_div);
this.add(bin);
this.add(oct);
this.add(hex);
this.setBounds(500, 250, 500, 300);
this.setLayout(null);
this.setVisible(true);
}
public void getIt()
{
zahl = Integer.parseInt(f_zahl.getText());
divisor = Integer.parseInt(f_div.getText());
if(divisor==16)
{
zerlegeHex();
}
else
{
zerlege();
}
}
public void zerlege()
{
while(zahl>0)
{
ergebnis = zahl/divisor;
rest = Integer.toString(zahl%divisor)+rest;
zahl = ergebnis;
}
ausgabe();
}
public void zerlegeHex()
{
String q = "";
String calc = "";
while(zahl>0)
{
ergebnis = zahl/divisor;
calc = Integer.toString(zahl%divisor);
if(calc.equals(10))
{
calc = "A";
rest = calc+rest;
}
else
{
if(calc.equals(11))
{
calc = "B";
rest = calc+rest;
}
else
{
if(calc.equals(12))
{
calc = "C";
rest = calc+rest;
}
else
{
if(rest.equals(13))
{
calc = "D";
rest = calc+rest;
}
else
{
if(calc.equals(14))
{
calc = "E";
rest = calc+rest;
}
else
{
if(calc.equals(15))
{
calc = "F";
rest = calc+rest;
}
else
{
rest = calc+rest;
}
}
}
}
}
}
}
ausgabe();
}
public void ausgabe()
{
f_erg.setText(rest);
}
public class ActionLauscher implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==oct)
{
divisor = 8;
}
else
{
if(e.getSource()==bin)
{
divisor = 2;
}
else
{
if(e.getSource()==hex)
{
divisor = 16;
}
else
{
if(e.getSource()==knopf)
{
getIt();
}
}
}
}
}
}
public static void main(String[] args)
{
gui gu = new gui();
}
}
[/code]