awt und swing

Status
Nicht offen für weitere Antworten.

adamffm

Neues Mitglied
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!
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);
 

Marco13

Top Contributor
Ja, viel Code :autsch: Ich gehe mal (wie selbstverständlich) davon aus, dass du alles richtig "portiert" hast.

Dann kann es trotzdem noch sein, dass sich bei Swing einige Fragen stellen, die bei AWT vielleicht nicht auftraten - kannst mal über How to Use the Focus Subsystem (The Java™ Tutorials > Creating a GUI with JFC/Swing > Using Other Swing Features) drüberschauen, und vielleicht auch über How to Use Key Bindings (The Java™ Tutorials > Creating a GUI with JFC/Swing > Using Other Swing Features) ...
 
J

JohannisderKaeufer

Gast
Sorry, aber MausAktion ist wirklich gruselig.

Als ich mal vom Style her was ähnlches geschrieben hatte wurde ich gefragt, was ich an Objektorientierung nicht verstanden hätte.

Wenn du aus den MausAktion mehrere Klassen machst, zb. MouseExitAction, MousePasteAction, MouseCopyAction,... und dem jeweiligen Button, dann den richtigen Listener zuweist,

dann kannst du dir überprüfungen wie a.getActionCommand().equals("..."); sparen.

Für die Geschichte mit dem ItemListener gilt das gleiche bezogen auf getItem().equals("...");

Der nächste Punkt ist.

rad_ausgewaehlt=true;
deg_ausgewaehlt=false;
grad_ausgewaehlt=false;

könnte durch enums ersetzt werden wodurch man dann z.B switch verwenden könnte.
Java:
public enum RechenModus{
RAD, DEG, GRAD
}
und im Listener
rechnermodus = RechnerModus.RAD;

viel mehr braucht in den listenern eigentlich garnicht zu stehen.

Die Getter und Setter, die der Listener nochso mit sich führt wären in einer "RechnerModel" klasse gut aufgehoben.

Java:
public RechnerModel{
RechnerModus rechnerModus;
RechenModus rechenModus;//DEZ, BIN, OCT
...
getter und setter
}
Nach dem MVC-Pattern würde dann folgen.
Die Listener würden dann einen aufruf in einer ControllerKlasse machen, die zum einen das Model in den "Korrekten" zustand versetzt und zusätzliche Aktionen in der GUI aufruft.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Kochbuch bzw. Rezepte-Datenbank app mit Swing..? Allgemeine Java-Themen 5
I Swing GUI / Webapp..... benötige ein paar Tips / Ratschläge Allgemeine Java-Themen 18
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
T Methoden Swing/Graphics/draw Allgemeine Java-Themen 6
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
N GUI Interface, swing Allgemeine Java-Themen 7
J Swing Cursor.WAIT funktioniert nicht nach JFileChooser Allgemeine Java-Themen 1
V Input/Output Swing Icons in Jar Archiv laden Allgemeine Java-Themen 10
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
O Swing + EJB Allgemeine Java-Themen 4
M JavaFX-Gegenstück zu Swing-Button-DoClick-Methode Allgemeine Java-Themen 5
eskimo328 Swing Client Anwendung für MAC OS (Update Routine) Allgemeine Java-Themen 6
T HTTP HttpWebRequest in Swing-Projekt nutzen Allgemeine Java-Themen 4
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
K Threads - Swing - Synchronisation nötig? Allgemeine Java-Themen 8
J [SWING]Elegante Java Formular Lösung? XML? Allgemeine Java-Themen 4
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
I Swing Welche Swing Komponente soll ich nehmen? Allgemeine Java-Themen 2
L Web-Framework und Swing Framework o.ä Allgemeine Java-Themen 15
Y Anwendung starten(JAR) - Entscheidung Konsole oder Swing Allgemeine Java-Themen 5
A Swing paintcomponent komischer Fehler Allgemeine Java-Themen 6
algorismi Google maps in Java Swing Allgemeine Java-Themen 2
nrg Swing 2 Fragen zu Swing/AWT Allgemeine Java-Themen 7
T Jakarta Objekt (Excel Sheet) in Swing/SWT einbetten Allgemeine Java-Themen 3
D Organigramm mit GWT oder Swing Allgemeine Java-Themen 4
E Swing hilfe, JWindow mit eintrag in taskleiste Allgemeine Java-Themen 2
M Name der Swing Komponente Allgemeine Java-Themen 3
MQue Swing-Componenten -> JavaBean Allgemeine Java-Themen 5
H Schrifthöhe berechnen / Swing Allgemeine Java-Themen 5
Z Swing vs Konsole Allgemeine Java-Themen 17
T Wo ist javax.swing.TransferHandler enthalten? Allgemeine Java-Themen 10
ARadauer Scaffolding für Swing Anwendungen Allgemeine Java-Themen 4
? Swing Anwendung aus Konsole starten Allgemeine Java-Themen 7
H Webseiten aus Swing Allgemeine Java-Themen 4
B SBCC - Swing Better Components Collection - downloadlink ? Allgemeine Java-Themen 5
G Feld Validierung in Swing Programm Allgemeine Java-Themen 6
G Swing Validierungs Framework Allgemeine Java-Themen 2
A Klappmechanismus bei Components(SWING) Allgemeine Java-Themen 8
M Swing funktioniert und funktioniert nicht Allgemeine Java-Themen 4
O Swing oder JMF Problem Allgemeine Java-Themen 11
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
P RTF dynamisch machen (IText, Swing) Allgemeine Java-Themen 4
E Thread Fragen in Verbindung mit Swing Allgemeine Java-Themen 4
G java applet mit swing -> hundert prozent cpu auslastung Allgemeine Java-Themen 11
S Swing-Projekt zum Üben Allgemeine Java-Themen 5
I Servlet von einem Swing Based GUI aufrufen Allgemeine Java-Themen 5
D Spezielles Eingabefeld für Numerische Werte in Swing Allgemeine Java-Themen 2
G Swing vs. RCP Allgemeine Java-Themen 9
T substring() und Swing setText() Allgemeine Java-Themen 6
A Hibernate und Swing Allgemeine Java-Themen 2
S SWING Problem Allgemeine Java-Themen 2
S SWING UND AWT!Problem wegen Canvas! Allgemeine Java-Themen 29
clemente Swing Applikation killt kwin Prozess (unter Linux / KDE) Allgemeine Java-Themen 3
T Exception at javax.swing.plaf.basic.BasicTableUI.paintCell Allgemeine Java-Themen 3
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
M swing und windows registry Allgemeine Java-Themen 11
A Swing hat ein leicht verändertes Aussehen, wie findet ihrs? Allgemeine Java-Themen 28
M Was soll ich benutzen? Java2D, Java3D, Swing, AWT?? Allgemeine Java-Themen 21
U Frage zu Swing Allgemeine Java-Themen 4
B Hintergrund bei Swing Allgemeine Java-Themen 6
K swing frage (komisches swing) <-- manoman was für n threa Allgemeine Java-Themen 2
J Chatprog schließen,AWT + Swing Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben