hi
mein Umrechner nimmt gestallt an. Hat noch einige Bugs und keine Fehlerabfang einrichtungen.
Trotzdem, hab schon einige Schinken gewältzt und turials geackert.
Was ich gerne möchte::
Wie vom netten C her eine möglich keit à la getch(); ne taste abzulesen im ascii code . diesen dann als Integer ausgeben. z.b. drücke Num0 = 48 wird dan als asciiwert ausgegeben. Ascii mus nur als einzelziffer umgewertet werden in Integer, für den rest sorge ich schon.
Also wie krieg ich das hin.??
habs so weit gebracht, aber des packi ned.
als überblick was ich mache, den code:
Wie gesagt er ist unvollständig und verbugt!!
Alles was ich wissen möcht ist das mit dem Ascii
danke
mein Umrechner nimmt gestallt an. Hat noch einige Bugs und keine Fehlerabfang einrichtungen.
Trotzdem, hab schon einige Schinken gewältzt und turials geackert.
Was ich gerne möchte::
Wie vom netten C her eine möglich keit à la getch(); ne taste abzulesen im ascii code . diesen dann als Integer ausgeben. z.b. drücke Num0 = 48 wird dan als asciiwert ausgegeben. Ascii mus nur als einzelziffer umgewertet werden in Integer, für den rest sorge ich schon.
Also wie krieg ich das hin.??
habs so weit gebracht, aber des packi ned.
als überblick was ich mache, den code:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
/**
* Created by IntelliJ IDEA.
* User:
* Date: 29.03.2005
* Time: 08:32:36
* To change this template use File | Settings | File Templates.
*/
public class Fenster extends JFrame {
private int tfID, zahldessystems;
private long longzahl;
private String incomingdigit,saveincoming;
private JPanel contentPane;
private GridBagLayout gridBagLayout = new GridBagLayout();
private JTextField textfeld[] = new JTextField[9];
private final String[] lbText = {"Dezimal","Binär","Oktal","Hex","ASCII","ASCII f. Keycode","Keycode"};
private JLabel wert[] = new JLabel[lbText.length];
private boolean accept=false;
//Den Frame konstruieren
public Fenster() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
ausgabe();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Initialisierung der Komponenten
private void ausgabe() throws Exception {
int y2n=0;
contentPane = (JPanel) this.getContentPane();
contentPane.setOpaque(true);
contentPane.setLayout(gridBagLayout);
this.setSize(new Dimension(700, 700)); //<<<<<<<<----- geht ned>!
this.setTitle("Umrechner");
for(int b = 0;b<9;b++){
textfeld[b]= new JTextField();
textfeld[b].setText("");
if(b==8){
textfeld[b].setPreferredSize(new Dimension(50,20));
}else{
textfeld[b].setPreferredSize(new Dimension(250,20));
}
textfeld[b].setHorizontalAlignment(SwingConstants.RIGHT);
}
for(int s = 0 ; s<lbText.length;s++ ){
wert[s] = new JLabel();
wert[s].setText(lbText[s]);
}
for (int y =0 ; y <8; y++) {
contentPane.add(textfeld[y], new GridBagConstraints (0, y, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 10, 5, 1), 0, 0));
}
for (int y2p =0; y2p <lbText.length+1;y2p++){
contentPane.add(wert[y2n], new GridBagConstraints(1, y2p, 1, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 1, 5,10), 0, 0));
y2n++;
if(y2n==4){
y2p++;
}
}
textfeld[8].setHorizontalAlignment(SwingConstants.LEFT);
contentPane.add(textfeld[8], new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 1, 5, 20), 0, 0));
textfeld[8].setText("32");
zahldessystems=32;
keylistenerIDsetzen();
validate();
pack();
setVisible(true);
}
private void keylistenerIDsetzen() {
for(int k = 0; k<=8;k++){
final int kID = k;
textfeld[k].addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e) {
tfID=kID;
keyfilter(e);
}
});
}
}
private void keyfilter(KeyEvent e) {
Object obj = e.getSource();
JTextField b = (JTextField) obj;
if (obj instanceof JTextField) {
incomingdigit = b.getText();
System.out.println(tfID+"<<--tfID:Digit-->>"+incomingdigit);
switcherfortfID();
} else {
ende();
}
}
private void switcherfortfID() {
switch(tfID){
case 0:
dezimal();
break;
case 1:
binaer();
break;
case 2:
oktal();
break;
case 3:
hex();
break;
case 4:
diezahldesbelzahlsystem();
break;
case 5:
ascii();
break;
case 6:
asciifkeycode();
break;
case 7:
keycode();
break;
case 8:
belzahlsystem();
break;
default:
break;
}
}
private void oktal() {
String s = incomingdigit.trim();
accept = false;
accept = incomingdigit.endsWith("0");
if(accept == false){
accept = incomingdigit.endsWith("1");
if(accept ==false ){
accept = incomingdigit.endsWith("2");
if(accept ==false){
accept = incomingdigit.endsWith("3");
if(accept ==false){
accept = incomingdigit.endsWith("4");
if(accept ==false){
accept = incomingdigit.endsWith("5");
if(accept ==false){
accept = incomingdigit.endsWith("6");
if(accept ==false){
accept = incomingdigit.endsWith("7");
if(accept ==false){
accept = incomingdigit.endsWith("8");
}
}
}
}
}
}
}
}
if(accept == true){
saveincoming = incomingdigit;
longzahl = Long.parseLong(s,8);
}else{
textfeld[2].setText(saveincoming);
}
if(longzahl<=2147483647){
textfeld[0].setText(Long.toString((int)longzahl,10));
textfeld[3].setText(Long.toHexString((int) longzahl) );
textfeld[1].setText(Long.toBinaryString((int)longzahl));
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
}
}
private void hex() {
String s = incomingdigit.trim();
longzahl = Long.parseLong(s,16);
if(longzahl<=2147483647){
textfeld[1].setText(Integer.toBinaryString((int) longzahl));
textfeld[2].setText(Integer.toOctalString((int) longzahl));
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
textfeld[0].setText(Integer.toString((int)longzahl,10));
}
}
private void diezahldesbelzahlsystem() {
String s = incomingdigit.trim();
longzahl = Long.parseLong(s,zahldessystems);
if(longzahl<=2147483647){
textfeld[0].setText(Long.toString((int)longzahl,10));
textfeld[3].setText(Long.toHexString((int) longzahl) );
textfeld[1].setText(Long.toBinaryString((int)longzahl));
textfeld[2].setText(Integer.toOctalString((int) longzahl));
}
}
private void belzahlsystem(){
String tf0inhalt = textfeld[0].getText();
String s = incomingdigit.trim();
zahldessystems = Integer.parseInt(s);
if( 36<=zahldessystems){
textfeld[8].setText("36");
zahldessystems = 36;
longzahl = Long.parseLong(tf0inhalt,10);
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
}else{
longzahl = Long.parseLong(tf0inhalt,10);
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
}
}
private void ascii() {
}
private void asciifkeycode() {
}
private void keycode() {
}
private void dezimal() {
String s = incomingdigit.trim();
longzahl = Long.parseLong(s);
if(longzahl<=2147483647){
textfeld[3].setText(Integer.toHexString((int) longzahl) );
textfeld[1].setText(Integer.toBinaryString((int) longzahl));
textfeld[2].setText(Integer.toOctalString((int) longzahl));
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
}else{
for(int e = 1; e<=3;e++){
textfeld[e].setText("OVER INTEGER!");
}
}
}
private void binaer() {
String s = incomingdigit.trim();
accept = false;
accept = incomingdigit.endsWith("0");
if(accept == false){
accept = incomingdigit.endsWith("1");
}
if(accept == true){
saveincoming = incomingdigit;
longzahl = Long.parseLong(s,2);
}else{
textfeld[2].setText(saveincoming);
}
if(longzahl<=2147483647){
textfeld[0].setText(Long.toString((int)longzahl,10));
textfeld[3].setText(Long.toHexString((int) longzahl) );
textfeld[2].setText(Integer.toOctalString((int) longzahl));
textfeld[4].setText(Integer.toString((int)longzahl,zahldessystems));
}else{
}
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
ende();
}
}
/**
*/
public void ende() {
System.exit(0);
}
}
Wie gesagt er ist unvollständig und verbugt!!
Alles was ich wissen möcht ist das mit dem Ascii
danke