package project;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MainFrame extends JFrame implements ActionListener{
private static final long serialVersionUID = 3618140065121776948L;
private JTextField eingabe, ausgabe;
private JPanel panel;
private JButton rechnen;
public MainFrame() {
super();
setTitle("Zahlen in Buchstaben");
setSize(640,120);
eingabe = new JTextField();
ausgabe = new JTextField();
rechnen = new JButton("Rechnen");
rechnen.addActionListener(this);
panel = new JPanel();
panel.setLayout(new GridLayout(2,1));
getContentPane().add(panel, "North");
getContentPane().add(rechnen, "South");
panel.add(eingabe);
panel.add(ausgabe);
addWindowListener( new WindowAdapter(){
public void windowClosing( WindowEvent e ) {
exit();
}
});
}
public void exit(){
System.exit( 0 );
}
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
if (source == rechnen) {
umsetzenZahlen(eingabe.getText());
}
}
public void umsetzenZahlen(String z) {
String tmpZahl = "";
int komma = z.indexOf(",");
if (komma == 1) {
ausgabe.setText(umsetzenEiner(Integer.parseInt(z.substring(0,komma))));
}
if (komma == 2) {
ausgabe.setText(umsetzenZehner(Integer.parseInt(z.substring(0,komma))));
}
if (komma == 3) {
ausgabe.setText(umsetzenHundert(Integer.parseInt(z.substring(0,komma))));
}
if (komma >= 4 && komma < 7) {
ausgabe.setText(umsetzenTausend(Integer.parseInt(z.substring(0,komma)), komma));
}
if (komma >= 7 && komma < 10) {
ausgabe.setText(umsetzenMillion(Integer.parseInt(z.substring(0,komma)), komma));
}
}
public String umsetzenEiner(int z) {
String ergEiner = "";
if (z == 1)
return ergEiner = "Ein";
if (z == 2)
return ergEiner = "Zwei";
if (z == 3)
return ergEiner = "Drei";
if (z == 4)
return ergEiner = "Vier";
if (z == 5)
return ergEiner = "Fünf";
if (z == 6)
return ergEiner = "Sechs";
if (z == 7)
return ergEiner = "Sieben";
if (z == 8)
return ergEiner = "Acht";
if (z == 9)
return ergEiner = "Neun";
return null;
}
public String umsetzenZehner(int z) {
String ergZehner = "";
if (z == 10)
return ergZehner = "Zehn";
if (z == 11)
return ergZehner = "Elf";
if (z == 12)
return ergZehner = "Zwölf";
if (z == 13)
return ergZehner = "Dreizehn";
if (z == 14)
return ergZehner = "Vierzehn";
if (z == 15)
return ergZehner = "Fünfzehn";
if (z == 16)
return ergZehner = "Sechszehn";
if (z == 17)
return ergZehner = "Siebzehn";
if (z == 18)
return ergZehner = "Achtzehn";
if (z == 19)
return ergZehner = "Neunzehn";
if (z == 20)
return ergZehner = "Zwanzig";
if (z == 30)
return ergZehner = "Dreissig";
if (z == 40)
return ergZehner = "Vierzig";
if (z == 50)
return ergZehner = "Fünfzig";
if (z == 60)
return ergZehner = "Sechszig";
if (z == 70)
return ergZehner = "Siebzig";
if (z == 80)
return ergZehner = "Achzig";
if (z == 90)
return ergZehner = "Neunzig";
if (z > 20 && z < 30) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undzwanzig";
}
if (z >= 30 && z < 40) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "unddreissig";
}
if (z >= 40 && z < 50) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undvierzig";
}
if (z >= 50 && z < 60) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undfünfzig";
}
if (z >= 60 && z < 70) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undsechszig";
}
if (z >= 70 && z < 80) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undsiebzig";
}
if (z >= 80 && z < 90) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undachzig";
}
if (z >= 90 && z < 100) {
ergZehner = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,2)));
return ergZehner = String.valueOf(ergZehner) + "undneunzig";
}
return null;
}
public String umsetzenHundert(int z) {
String ergHundert = "";
ergHundert = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(0,1)));
ergHundert = ergHundert + "hundert";
if (Integer.parseInt(String.valueOf(z).substring(1,3)) == 0 )
return ergHundert;
if (Integer.parseInt(String.valueOf(z).substring(1,3)) > 0 && Integer.parseInt(String.valueOf(z).substring(1,3)) < 10 )
return ergHundert = ergHundert + umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1,3)));
if (Integer.parseInt(String.valueOf(z).substring(1,3)) >= 10 )
return ergHundert = ergHundert + umsetzenZehner(Integer.parseInt(String.valueOf(z).substring(1,3)));
return null;
}
public String umsetzenTausend(int z, int k) {
// k = Anzahl Vorkommastellen
int rest = k - 4; // zehn und hunderttausend erkennen
String ergTausend = "";
if (k == 4) {
ergTausend = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(0,1)));
ergTausend = ergTausend + "tausend";
}
if (k == 5) {
ergTausend = umsetzenZehner(Integer.parseInt(String.valueOf(z).substring(0,2)));
ergTausend = ergTausend + "tausend";
}
if (k == 6) {
ergTausend = umsetzenHundert(Integer.parseInt(String.valueOf(z).substring(0,3)));
ergTausend = ergTausend + "tausend";
}
if (Integer.parseInt(String.valueOf(z).substring(1 + (k-4) ,k)) == 0 )
return ergTausend;
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) > 0 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 10 )
return ergTausend = ergTausend + umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 10 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 100 )
return ergTausend = ergTausend + umsetzenZehner(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 100 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 1000 )
return ergTausend = ergTausend + umsetzenHundert(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
return null;
}
public String umsetzenMillion(int z, int k) {
// k = Anzahl Vorkommastellen
int rest = k - 7; // zehn und hundertmillionen erkennen
String ergMillion = "";
if (k == 7) {
ergMillion = umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(0,1)));
ergMillion = ergMillion + "million";
}
if (k == 8) {
ergMillion = umsetzenZehner(Integer.parseInt(String.valueOf(z).substring(0,2)));
ergMillion = ergMillion + "million";
}
if (k == 9) {
ergMillion = umsetzenHundert(Integer.parseInt(String.valueOf(z).substring(0,3)));
ergMillion = ergMillion + "million";
}
if (Integer.parseInt(String.valueOf(z).substring(1 + (k-7) ,k)) == 0 )
return ergMillion;
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) > 0 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 10 )
return ergMillion = ergMillion + umsetzenEiner(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 10 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 100 )
return ergMillion = ergMillion + umsetzenZehner(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 100 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 1000 )
return ergMillion = ergMillion + umsetzenHundert(Integer.parseInt(String.valueOf(z).substring(1+rest,k)));
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 1000 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 10000 )
return ergMillion = ergMillion + umsetzenTausend(Integer.parseInt(String.valueOf(z).substring(1+rest,k)),4);
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 10000 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 100000 )
return ergMillion = ergMillion + umsetzenTausend(Integer.parseInt(String.valueOf(z).substring(1+rest,k)),5);
if (Integer.parseInt(String.valueOf(z).substring(1+rest,k)) >= 100000 && Integer.parseInt(String.valueOf(z).substring(1+rest,k)) < 1000000 )
return ergMillion = ergMillion + umsetzenTausend(Integer.parseInt(String.valueOf(z).substring(1+rest,k)),6);
return null;
}
}