ich habe ein reichner (ähnlich wie vistarechner)im awt imlemntiert.
ich habe das projekt im swing konvertiert.
ich habe folgende problem:
wenn ich Testatur benutzen will dann reagiert mein rechner nicht!!!!!!
und auch wenn ich zwischen hexadezimal ,binär oder oktadezimal weckseln will dann auch
vergeblich.
kann jemand mir helfen??
danke im voraus!
--------------------------------------------------------------------------------------
ich habe das projekt im swing konvertiert.
ich habe folgende problem:
wenn ich Testatur benutzen will dann reagiert mein rechner nicht!!!!!!
und auch wenn ich zwischen hexadezimal ,binär oder oktadezimal weckseln will dann auch
vergeblich.
kann jemand mir helfen??
danke im voraus!
Java:
public class MausAktion implements ActionListener ,ItemListener{
private boolean rad_ausgewaehlt ,deg_ausgewaehlt,grad_ausgewaehlt,
bin_ausgewaehlt,hex_ausgewaehlt,okt_ausgewaehlt,dez_ausgewaehlt;
/*
* zuerst wird eine objektvariable deklariert,der eine Referez auf
* das Objekt Rechner übergeben werden kann.
* Diese übergabe geschiet im Konstruktor dieser Klasse.
*/
Rechner rechner_;//objektvariable
private zahlenUmstellen zahlenUmstellen_;
private double k ,eingefuegtWert ;
private boolean einfuegen_eingesezt ,kopieren_eingesezt;
public MausAktion(Rechner rechner_ob) {//konstruktor
rechner_=rechner_ob;
zahlenUmstellen_=new zahlenUmstellen();
deg_ausgewaehlt=true;
rad_ausgewaehlt=false;
grad_ausgewaehlt=false;
dez_ausgewaehlt=true;
bin_ausgewaehlt=false;
hex_ausgewaehlt=false;
okt_ausgewaehlt=false;
}
public void actionPerformed(ActionEvent a) {
// AbstractButton aButton = (AbstractButton)a.getSource();
//String label = aButton.getText();
//System.out.println("a.getActionCommand()=" +label);
System.out.println("a.getActionCommand()=" +a.getActionCommand());
if(a.getActionCommand().equals("exit")){
System.exit(1);}
if(a.getActionCommand().equals("einfuegen")){
eingefuegtWert=k;
rechner_.zahl_zeigen(k);
//damit man direkt einfügen operieren kann
rechner_.setZwischen_speichern(k);
einfuegen_eingesezt=true;
}
if(a.getActionCommand().equals("kopieren")){
// k=rechner_.getZahl1();
k=rechner_.getZwischen_speichern();
// damit man direkt nach dem kopieren ,operieren kann
rechner_.setZwischen_speichern(k);
kopieren_eingesezt=true;
}
if(a.getActionCommand().equals("Standard")){
rechner_.mainWindow.gridBagLayout_panelNrmal(1,2,2);
rechner_.mainWindow.gridBagLayout_display(2,1);
rechner_.mainWindow.gridBagLayout_loechen(2,1);
rechner_.mainWindow.gridBagLayout_PanelWisenschalftlich(0,0,0);
//klappt nicht
}
if(a.getActionCommand().equals("Wissenschaftlich")){
rechner_.mainWindow.gridBagLayout_panelNrmal(0,1,1);
rechner_.mainWindow.gridBagLayout_display(1,1);
rechner_.mainWindow.gridBagLayout_loechen(1,1);
}
// hier wird die aktion loeschen bearbeitetS
if(a.getActionCommand()=="z"){
rechner_.Display_loeschen();
rechner_.Initialiesierung();
}
else{
rechner_.nimm_zeichen(a.getActionCommand());
}
}// end actionPerformed(ActionEvent a)
/*
* die methoden ,die wir unten schreiben ,werden wir bei die methode
* oid itemStateChanged(ItemEvent check) brauchen
*/
void is_Hex_ausgewaehlt(){
if(rechner_.getZwischen_speichern_string()!="" && hex_ausgewaehlt==true){
String s=rechner_.getZwischen_speichern_string();
rechner_.setZwischen_speichern(zahlenUmstellen_.hexadezimalTOdez(s));
rechner_.setZwischen_speichern_string("");
zahlenUmstellen_.setHexaTOdez(0);
hex_ausgewaehlt=false;
}}
void is_bin_ausgewaehlt(){
if(rechner_.getZwischen_speichern_string()!="" && bin_ausgewaehlt==true){
String s=rechner_.getZwischen_speichern_string();
rechner_.setZwischen_speichern(zahlenUmstellen_.binTOdez(s));
rechner_.setZwischen_speichern_string("");
zahlenUmstellen_.setBinTOdez(0);
bin_ausgewaehlt=false;
}
}
void is_okt_ausgewaehlt(){
if(rechner_.getZwischen_speichern_string()!="" && okt_ausgewaehlt==true){
String s=rechner_.getZwischen_speichern_string();
rechner_.setZwischen_speichern(zahlenUmstellen_.oktaTOdez(s));
rechner_.setZwischen_speichern_string("");
zahlenUmstellen_.setOktaTOdez(0);
okt_ausgewaehlt=false;
}
}
// abfangen von checkbox aktionen (Math.PI)/180
public void itemStateChanged(ItemEvent check) {
//System.out.println("ItemEvent ---------wurde geteset--------------check" +check.getSource().equals("Rad"));
//***********************
// TODO Automatisch erstellter Methoden-Stub
//-------- "Grad" "Deg" "Rad"
if(check.getItem().equals("Rad")){
rad_ausgewaehlt=true;
deg_ausgewaehlt=false;
grad_ausgewaehlt=false;
System.out.println("ItemEvent --------Rad--------------check");
}
if(check.getItem().equals("Grad")){
grad_ausgewaehlt=true;
deg_ausgewaehlt=false;
rad_ausgewaehlt=false;
System.out.println("ItemEvent --------grad--------------check");
}
if(check.getItem().equals("Deg")){
deg_ausgewaehlt=true;
rad_ausgewaehlt=false;
grad_ausgewaehlt=false;
System.out.println("ItemEvent --------deg--------------check");
}
//**************************************************************************
if(check.getItem().equals("Dez")){
//dez_ausgewaehlt==true ,es ist so initialisiert
rechner_.mainWindow.aktivieren_buttons_funkton();
rechner_.mainWindow.aktivieren_buttons_zahlen();
rechner_.mainWindow.deaktivieren_buttons_buchstaben();
rechner_.mainWindow.aktivieren_buttons_8_9();
rechner_.mainWindow.getKomma().setEnabled(true);
is_bin_ausgewaehlt();
is_Hex_ausgewaehlt();
is_okt_ausgewaehlt();
if(rechner_.getZwischen_speichern()==0){//falls nur direkt ein dezimal eingegeben wurde
rechner_.zahl_zeigen(0);;
}else
{ // (int) wenn man double zahl wählt dann wird nur die int wert gezeigt
rechner_.zahl_zeigen((int)rechner_.getZwischen_speichern());
rechner_.setZwischen_speichern(rechner_.getZwischen_speichern());
}
hex_ausgewaehlt=false;
okt_ausgewaehlt=false;
bin_ausgewaehlt=false;
}
//**************************************************************************
if(check.getItem().equals("bin")){
System.out.print("------------------------zeil---161");
bin_ausgewaehlt=true;
rechner_.mainWindow.deaktivieren_buttons_funkton();
rechner_.mainWindow.deaktivieren_buttons_zahlen();
rechner_.mainWindow.deaktivieren_buttons_buchstaben();
rechner_.mainWindow.getKomma().setEnabled(false);
is_Hex_ausgewaehlt();
is_okt_ausgewaehlt();
if(rechner_.getZwischen_speichern()==0){
rechner_.zahl_zeigen(0);;
}else
{
String bin=zahlenUmstellen_.dezTObin((int)rechner_.getZwischen_speichern());
rechner_.String_zeigen(bin);
rechner_.setZwischen_speichern(rechner_.getZwischen_speichern());
rechner_.setZwischen_speichern_string("");
zahlenUmstellen_.setDezTObin("");//um die konkatenation der Ergibnis zu vermeiden
}
hex_ausgewaehlt=false;
okt_ausgewaehlt=false;
dez_ausgewaehlt=false;
}
//**************************************************************************
if(check.getItem().equals("Okt")){ //dez to okt
okt_ausgewaehlt=true;
rechner_.mainWindow.deaktivieren_buttons_buchstaben();
rechner_.mainWindow.deaktivieren_buttons_8_9();
rechner_.mainWindow.getKomma().setEnabled(false);
is_bin_ausgewaehlt();
is_Hex_ausgewaehlt();
if(rechner_.getZwischen_speichern()==0){
rechner_.zahl_zeigen(0);
}else
{
String okt=zahlenUmstellen_.dezTOokta((int)rechner_.getZwischen_speichern());
rechner_.String_zeigen(okt);
rechner_.setZwischen_speichern(rechner_.getZwischen_speichern());
// rechner_.setZwischen_speichern_string("");
zahlenUmstellen_.setDezTOokta("");
}
hex_ausgewaehlt=false;
dez_ausgewaehlt=false;
bin_ausgewaehlt=false;
}
//**************************************************************************
if(check.getItem().equals("Hex")){ // dez to hexa
hex_ausgewaehlt=true;
rechner_.mainWindow.getKomma().setEnabled(false);
rechner_.mainWindow.aktivieren_buttons_buchstaben();
rechner_.mainWindow.aktivieren_buttons_8_9();
is_bin_ausgewaehlt();
is_okt_ausgewaehlt();
if(rechner_.getZwischen_speichern()==0){
rechner_.zahl_zeigen(0);
//hex_ausgewaehlt=false;//da am anfang hex leer string ist
}
else{
String s=zahlenUmstellen_.dezTOhexadezimal((int)rechner_.getZwischen_speichern());
rechner_.String_zeigen(s);
// rechner_.setZwischen_speichern_string(s);
zahlenUmstellen_.setDezTOhexa("");
// hex_ausgewaehlt=false;
}
dez_ausgewaehlt=false;
okt_ausgewaehlt=false;
bin_ausgewaehlt=false;
}
//**************************************************************************
}
public boolean isEinfuegen_eingesezt() {
return einfuegen_eingesezt;
}
public void setEinfuegen_eingesezt(boolean einfuegen_eingesezt) {
this.einfuegen_eingesezt = einfuegen_eingesezt;
}
public double getK() {
double x=this.k;
return x;
}
public boolean isKopieren_eingesezt() {
return kopieren_eingesezt;
}
public void setKopieren_eingesezt(boolean kopieren_eingesezt) {
this.kopieren_eingesezt = kopieren_eingesezt;
}
public double getEingefuegtWert() {
return eingefuegtWert;
}
public void setEingefuegtWert(double eingefuegtWert) {
this.eingefuegtWert = eingefuegtWert;
}
public boolean isDeg_ausgewaehlt() {
return deg_ausgewaehlt;
}
public void setDeg_ausgewaehlt(boolean deg_ausgewaehlt) {
this.deg_ausgewaehlt = deg_ausgewaehlt;
}
public boolean isGrad_ausgewaehlt() {
return grad_ausgewaehlt;
}
public void setGrad_ausgewaehlt(boolean grad_ausgewaehlt) {
this.grad_ausgewaehlt = grad_ausgewaehlt;
}
public boolean isRad_ausgewaehlt() {
return rad_ausgewaehlt;
}
public void setRad_ausgewaehlt(boolean rad_ausgewaehlt) {
this.rad_ausgewaehlt = rad_ausgewaehlt;
}
public boolean isBin_ausgewaehlt() {
return bin_ausgewaehlt;
}
public void setBin_ausgewaehlt(boolean bin_ausgewaehlt) {
this.bin_ausgewaehlt = bin_ausgewaehlt;
}
public boolean isDez_ausgewaehlt() {
return dez_ausgewaehlt;
}
public void setDez_ausgewaehlt(boolean dez_ausgewaehlt) {
this.dez_ausgewaehlt = dez_ausgewaehlt;
}
public boolean isHex_ausgewaehlt() {
return hex_ausgewaehlt;
}
public void setHex_ausgewaehlt(boolean hex_ausgewaehlt) {
this.hex_ausgewaehlt = hex_ausgewaehlt;
}
public boolean isOkt_ausgewaehlt() {
return okt_ausgewaehlt;
}
public void setOkt_ausgewaehlt(boolean okt_ausgewaehlt) {
this.okt_ausgewaehlt = okt_ausgewaehlt;
}
public zahlenUmstellen getZahlenUmstellen_() {
zahlenUmstellen z=zahlenUmstellen_;
return z;
}
public void setZahlenUmstellen_(zahlenUmstellen zahlenUmstellen_) {
this.zahlenUmstellen_ = zahlenUmstellen_;
}
}
Java:
public class TestaturAktion extends KeyAdapter{
Rechner rechner;
HilfsKlasse HilfsKlasse_;
/*
* Am anfang wird dem konstruktor eine Referenz auf die Klasse Rechner
* übergeben .
* Diese Referenz wird dann in der klasseinternen Variablen obj_R gespeichert
*/
public TestaturAktion(Rechner obj_R) {
// TODO Automatisch erstellter Konstruktoren-Stub
rechner=obj_R;
}
@SuppressWarnings("static-access")
public void keyPressed(KeyEvent testatur) {
// TODO Automatisch erstellter Methoden-Stub
super.keyPressed(testatur);
/*
* Mit der Methode getKeyCode der Klasse KeyEvent wird auf den Code der
* gedrückten Taste zugegriffen und dieser mit
* der symbolischen Konstante VK_.... verglichen.
*/
if(testatur.getKeyCode()==testatur.VK_ENTER){//falls Entertaste gedrückt
rechner.nimm_zeichen("=");
}
if(testatur.getKeyCode()==testatur .VK_DELETE){//falls Entftaste gedrückt
rechner.Display_loeschen();
rechner.Initialiesierung();
}
char c=testatur.getKeyChar();
if(checkeingabe(c).length()>0) {
rechner.nimm_zeichen(checkeingabe(c));
}
}//ende der keyPressed(KeyEvent testatur)
// Methode zum checken der eingedrückten Taste
//nur operation aus dem "0123456789.+-/*="
private String checkeingabe(char ch) {
// TODO Automatisch erstellter Methoden-Stub
String s=new String("0123456789.+-/*=ABCDEF");
if(s.indexOf(ch)==-1)return ("");
else return String.valueOf(ch);