Hallo
Ich habe eine Ascii-Rechner.
Aber der Oberfläche gefällt mir nicht und ich weis es auch nicht wie man die Oberfläche schöne programmiert.
Kann jemand mir Tipps oder Vorschläge geben, wie ich es machen kann.
so schaut die Fenster
Ascii-Rechner
hier die code
Ich habe eine Ascii-Rechner.
Aber der Oberfläche gefällt mir nicht und ich weis es auch nicht wie man die Oberfläche schöne programmiert.
Kann jemand mir Tipps oder Vorschläge geben, wie ich es machen kann.
so schaut die Fenster
Ascii-Rechner
hier die code
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
//Anzahl der auszugebenden Stellen
private int stellen = 4;
//Komponenten
JPanel panel = new JPanel();
JTextField eingabeFeld = new JTextField("");
JButton berechnenButton = new JButton("Berechnen");
JLabel ausgabeFeld = new JLabel("Ergebnis:");
JButton schliessenButton = new JButton("Schließen");
public Calculator()
{ MenuBar hauptMenue = new MenuBar();
Menu menuedatei =new Menu ("Datei");
menuedatei.add ("Beenden");
Menu menuebearbeiten = new Menu("Bearbeiten");
menuebearbeiten.add("Ergebnis Kopieren");
menuebearbeiten.add("Einfügen");
Menu menuehilfe = new Menu("?");
menuehilfe.add("Hilfethemen");
menuehilfe.add("Info");
hauptMenue.add(menuedatei);
hauptMenue.add(menuebearbeiten);
hauptMenue.setHelpMenu(menuehilfe);
setMenuBar(hauptMenue);
menuedatei.addActionListener(this);
//addWindowListener(this);
setTitle("Calculator");
//Aktionen festlegen
berechnenButton.setActionCommand("BERECHNEN");
berechnenButton.addActionListener(this);
//schliessenButton.setActionCommand("SCHLIESSEN");
//schliessenButton.addActionListener(this);
//Komponten hinzufügen
//panel.setLayout(new GridLayout(2,4));
//setBackground (Color.ORANGE);
JPanel panel = new JPanel();
panel.setLayout (new GridLayout (3, 1, 5, 10));
panel.setBorder (BorderFactory.createEmptyBorder (8, 8, 8, 8));
//JPanel eingabeFeld = new JPanel();
eingabeFeld.setBorder (BorderFactory.createTitledBorder ("Zahl eingeben"));
panel.add(eingabeFeld);
panel.add(berechnenButton);
panel.add(ausgabeFeld);
//panel.add(schliessenButton);
//Größe einstellen
panel.setPreferredSize(new Dimension(200, 150));
getContentPane().add(panel);
//add(panel);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Mittig setzen
setLocationRelativeTo(null);
}
/**
* @param args
*/
public static void main(String[] args)
{
new Calculator();
//Calculator MyCalc = new Calculator();
}
private String umrechnen(String zahlText)
{
long zahl = 0;
//Keine Zahl eingegeben
try
{
zahl = Long.parseLong(zahlText);
}
catch(NumberFormatException e)
{
return "Keine Zahl!";
}
//Zahl zu groß für die Anzahl der stellen
if(zahl > Math.pow(52, stellen))
{
return "Zahl zu groß!";
}
char[] chars = new char[stellen];
int[] reste = new int[stellen];
// Ergebnis
// Umwandlung Zahlensystem dezimal in 52-er System
// und codierung in Buchstaben
reste[0] = (int) (zahl % 52);
zahl = zahl / 52;
reste[1] = (int) (zahl % 52);
zahl = zahl / 52;
reste[2] = (int) (zahl % 52);
zahl = zahl / 52;
reste[3] = (int) (zahl % 52);
for (int i = 0; i < reste.length; i++)
{
if (reste[i] < 26)
{
chars[chars.length - (i+1)] = (char) (reste[i] + 97);
}
else
{
chars[chars.length - (i+1)] = (char) (reste[i] + 65 - 26);
}
}
return new String(chars);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("BERECHNEN"))
{
ausgabeFeld.setText("Ergebnis: " + umrechnen(eingabeFeld.getText()) );
}
else if(e.getActionCommand().equals("SCHLIESSEN"))
{
System.exit(0);
}
}
}