• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Das neue Jahr beginnt wie das alte - natürlich mit einem neuen Fotowettbewerb! Auch im Monat Januar freuen wir uns auf Eure Einsendungen. Wie es weitergeht, wisst Ihr ja - Hier geht es lang --> Klick

Java Tastatureingabe class file

hollesse

Golden Delicious
Registriert
02.07.12
Beiträge
9
Hallo, Ich bin jetzt seit ca. 3 Wochen in der 11ten Klasse auf einem Beruflichen Gymnasium im Bereich Datenverarbeitungstechnik. Dort lernen wir auch in Technikwissenschaften programmieren. Leider hat sich die Schule für Java anstatt C# entschieden. Naja damit muss ich wohl leben. In der letzten Stunde traf ich auf ein Problem bei dem mir der Lehrer auch nicht helfen konnte. Er hatte für uns eine Class File geschrieben mit der es möglich war Eingaben über die Tastatur auszuführen. Bei allen Windowsrechnern funktionierte diese Class für Macintosh jedoch leider nicht. Habe nun im Internet schon verzweifelt nach so einer Class File für Mac gesucht aber keine gefunden. Kann mir einer von euch da vielleicht helfen? z.B. über Quellen wo ich so etwas herbekomme oder mir vielleicht sogar eine schreiben?

Ich danke euch schon mal im vorraus für eure Hilfe!

Liebe Grüße

Joshua
 

Necrosis

Goldparmäne
Registriert
14.10.10
Beiträge
558
1. Java ist (solange man sich an die Regeln hält) nahezu vollständig plattformübergreifend ohne Neukompilierung lauffähig. An Java ist für den Normalgebraucht nichts schlechtes oder Nachteiliges. Nicht umsonst wird der absolute Großteil an Business-Software in Java geschrieben

2. Java und C# sind sich extrem ähnlich, sowohl von der Syntax als auch vom Unterbau. C# hat recht wenig mit den bisherigen C-Sprachen zu tun. Besser gesagt, mehr mit Java gemein als mit den C-Sprachen. C# läuft ebenso auf einer Art VM, und wird leider auch vor allem für Windows entwickelt. C# unter Linux und Mac ist bislang lediglich per Mono verfügbar, was noch nicht die komplette Funktionalität bietet.

3. Wie dein Lehrer es hinbekommen hat, eine Java-Lib zu schreiben, welche lediglich unter Windows läuft, ist mir ein Rätsel. Es gibt ein paar Funktionen, welche eingeschränkter zu nutzen sind, aber diese sind auch entsprechend markiert. Was ich mir vorstellen könnte ist, dass er feste Encodings gewählt hat oder da irgendwas zusammengeschustert hat. Sollte man normal aber der JVM überlassen.

4. Tastatureingabe ist eigentlich nicht schwer: Per Console z.B:
BufferedReader inputReader = new BufferedReader(new InputStreamReader(System.in));
try {
String input = inputReader.readLine();
} catch (IOException e) {
}

So kannst du prinzipiell einfach eine Eingabe verwenden, kann man ja auch beliebig damit rumspielen.

Falls du lieber Tastendrücke haben willst, kannst du dich z.B. an diesem hier orientieren:

http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6726-Tastatureingaben.html

Generell gilt noch: Du findest zu Java immer sehr viel in guten Bücher, z.B. das online frei verfügbare "Java ist auch eine Insel" oder "Java Blog Buch".
 

hollesse

Golden Delicious
Registriert
02.07.12
Beiträge
9
Heyy schon mal danke für deine Hilfe. Wie mein Lehrer das geschafft hat frage ich mich auch immernoch... ich kann dir ja mal die classfile die er uns gab hochladen und du kannst sie dir dann mal ansehen.

import java.io.*;

public class Tastatur
// Anfang Attribute
// Ende Attribute
{
// Anfang Methoden
public static String stringInput( )
{
String rueck;


try
{
DataInput t = new DataInputStream( System.in );
rueck = t.readLine();
}


catch (IOException e){return null;};
return rueck;
}




public static char charInput( )
{
char rueck='0';


try
{
DataInput t = new DataInputStream( System.in );
rueck = t.readLine().charAt(0);
}


catch (IOException e){System.out.println ("Fehler!");};
return rueck;
}






public static int intInput( )
{
boolean t=false;
int rueck;
String temp;


do
{
temp = stringInput();


try
{
rueck = Integer.parseInt(temp);
t = true;
}


catch(NumberFormatException e)
{
t=false;
System.out.println ("Fehler! Bitte Integer-Zahl eingeben!");
rueck = 0;
}


}
while (t ==false);


return rueck;
}




public static double doubleInput( )
{
String temp;
double rueck;
boolean t=false;


do
{
temp=stringInput();


try
{
rueck = Double.parseDouble(temp);
t = true;
}


catch(NumberFormatException e)
{
System.out.println ("Fehler! Bitte Fliesskommazahl eingeben!");
rueck = 0;
}


}
while (t ==false);
return rueck;
}
public static long longInput() {
String temp;
long rueck;
boolean t=false;


do
{
temp=stringInput();


try
{
rueck = Long.parseLong(temp);
t = true;
}


catch(NumberFormatException e)
{
System.out.println ("Fehler! Bitte Fliesskommazahl eingeben!");
rueck = 0;
}


}
while (t ==false);
return rueck;
}


public static float floatInput() {
String temp;
float rueck;
boolean t=false;


do
{
temp=stringInput();


try
{
rueck = Float.parseFloat(temp);
t = true;
}


catch(NumberFormatException e)
{
System.out.println ("Fehler! Bitte Fliesskommazahl eingeben!");
rueck = 0;
}


}
while (t ==false);
return rueck;
}


public static int byteInput() {
while(true){
try{
return System.in.read();
}catch(Exception e){
System.out.println("Bitte geben sie ein Zeichen ein!");
}
}


}

public static byte[] bytesInput(){
try{
if(System.in.available() > 0){
return bytesInput(System.in.available());
}else{
return null;
}
}catch(Exception e){
return null;
}
}

public static byte[] bytesInput(int length){
if(length <= 0){
return null;
}
while(true){
try{
int read = 0;
byte[] dat = new byte[length];
read = System.in.read(dat);
if(read == -1){
dat = null;
}
else if(read != length){
byte[] temp = dat;
dat = new byte[read];
for(int i = 0; i<read; i++){
dat = temp;
}
}
}catch(Exception e){
System.out.println("Bitte geben sie " + length + " Buchstaben ein!");
}
}
}

public static boolean booleanInput() {
String temp;
boolean rueck;
boolean t=false;


do
{
temp=stringInput();


try
{
rueck = Boolean.parseBoolean(temp);
t = true;
}


catch(NumberFormatException e)
{
System.out.println ("Fehler! Bitte Fliesskommazahl eingeben!");
rueck = false;
}


}
while (t ==false);
return rueck;
}


// Ende Methoden




}
 
Zuletzt bearbeitet:

Necrosis

Goldparmäne
Registriert
14.10.10
Beiträge
558
Nun, mir gefällt der Programmier-Stil jetzt nicht sonderlich, aber das funktioniert grundsätzlich so, wie es sollte. Auch auf einem Mac.

Was bekommt ihr denn für Fehler, und welche IDE verwendet ihr?
 

hollesse

Golden Delicious
Registriert
02.07.12
Beiträge
9
es gibt mir halt als aus "Fehler! Integer Zahl eingeben!" und ich kann da keine zahl eingeben. Als ich dann die datei auf dem mac gespeichert hab und auf win geöffnet hab lief dort alles! zur info ich benutze als editior auf mac textmate und kompiliere auch damit und bei win nutze ich javaeditor und kompiliere auch damit
 

Necrosis

Goldparmäne
Registriert
14.10.10
Beiträge
558
Ich kenne die Kompilier-Fähigkeiten dieser Tools nicht. Wenn du aber (und das ist wirklich sinnvoll) eine IDE wie NetBeans oder Eclipse (wobei ich NetBeans qualitativ am Mac bevorzuge) nutzt, kannst du dir sicher sein, dass alles so funktioniert wie es sollte, und zeigt dir Fehler auch meist mit Lösung an.

Ich kann an dem Code auf die schnelle aber wirklich keinen Fehler finden. Sollte funktionieren.