trennen der methoden

Status
Nicht offen für weitere Antworten.
A

ayk

Gast
hallo,
ich hab ein problem mit meinem quellcode.
und zwar weis ich nicht, wie ich die einzelnen Methoden im Programm in einzelnen java dateien zerlegen kann.
mit der main hab ich es geschafft. das ging ganz einfach.
aber z.B. die Taschenrechner() hab ich keine ahnung, wie ich die raus krieg?????

kann mir da bitte jemand helfen.
ich hoffe die Frage ist verständlich gestellt

danke

Code:
import java.awt.*;
import java.awt.event.*;

public class Taschenrechner extends Frame implements WindowListener, ActionListener{
	Label l1;

	TextField t1;

	Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bplus, bminus, bmal,
			bgleich, bpunkt, bclear, bgeteilt;

	boolean Rechne = true;

	double Zahl = 0;

	String Operation = "";

	/**
	 * erstellt die Oberflaeche des Taschenrechners
	 */
	public Taschenrechner()

	{
		Frame window = new Frame( "" );
		window.addWindowListener( this );
		window.setTitle( "Roche" );
		window.setSize( 250, 340 );
		window.setLocation( 200, 200 );
		window.setBackground( Color.red );
		/**
		 * erstellt das Anzeigefeld des Taschenrechners
		 */
		t1 = new TextField( "" );
		t1.setSize( 130, 30 );
		t1.setLocation( 30, 30 );
		t1.setEditable( false );
		window.add( t1 );
		/**
		 * erstellt die Buttons (0-9) des Taschenrechners
		 */
		b7 = new Button( "7" );
		b7.setSize( 40, 40 );
		b7.setLocation( 30, 80 );
		b7.addActionListener( this );
		window.add( b7 );

		b8 = new Button( "8" );
		b8.setSize( 40, 40 );
		b8.setLocation( 80, 80 );
		b8.addActionListener( this );
		window.add( b8 );

		b9 = new Button( "9" );
		b9.setSize( 40, 40 );
		b9.setLocation( 130, 80 );
		b9.addActionListener( this );
		window.add( b9 );

		b4 = new Button( "4" );
		b4.setSize( 40, 40 );
		b4.setLocation( 30, 140 );
		b4.addActionListener( this );
		window.add( b4 );

		b5 = new Button( "5" );
		b5.setSize( 40, 40 );
		b5.setLocation( 80, 140 );
		b5.addActionListener( this );
		window.add( b5 );

		b6 = new Button( "6" );
		b6.setSize( 40, 40 );
		b6.setLocation( 130, 140 );
		b6.addActionListener( this );
		window.add( b6 );

		b1 = new Button( "1" );
		b1.setSize( 40, 40 );
		b1.setLocation( 30, 200 );
		b1.addActionListener( this );
		window.add( b1 );

		b2 = new Button( "2" );
		b2.setSize( 40, 40 );
		b2.setLocation( 80, 200 );
		b2.addActionListener( this );
		window.add( b2 );

		b3 = new Button( "3" );
		b3.setSize( 40, 40 );
		b3.setLocation( 130, 200 );
		b3.addActionListener( this );
		window.add( b3 );

		b0 = new Button( "0" );
		b0.setSize( 40, 40 );
		b0.setLocation( 30, 260 );
		b0.addActionListener( this );
		window.add( b0 );

		/**
		 * erstellt die Operator-Buttons (C, +, -, *, /, =, .) des
		 * Taschenrechners
		 */
		bclear = new Button( "C" );
		bclear.setSize( 40, 40 );
		bclear.setLocation( 180, 30 );
		bclear.addActionListener( this );
		window.add( bclear );

		bplus = new Button( "+" );
		bplus.setSize( 40, 40 );
		bplus.setLocation( 180, 140 );
		bplus.addActionListener( this );
		window.add( bplus );

		bminus = new Button( "-" );
		bminus.setSize( 40, 40 );
		bminus.setLocation( 180, 200 );
		bminus.addActionListener( this );
		window.add( bminus );

		bpunkt = new Button( "." );
		bpunkt.setSize( 40, 40 );
		bpunkt.setLocation( 80, 260 );
		bpunkt.addActionListener( this );
		window.add( bpunkt );

		bgleich = new Button( "=" );
		bgleich.setSize( 40, 40 );
		bgleich.setLocation( 130, 260 );
		bgleich.addActionListener( this );
		window.add( bgleich );

		bmal = new Button( "*" );
		bmal.setSize( 40, 40 );
		bmal.setLocation( 180, 260 );
		bmal.addActionListener( this );
		window.add( bmal );

		bgeteilt = new Button( "/" );
		bgeteilt.setSize( 40, 40 );
		bgeteilt.setLocation( 180, 80 );
		bgeteilt.addActionListener( this );
		window.add( bgeteilt );
		/**
		 * macht die Oberfläche des Taschenrechners sichtbar
		 */
		l1 = new Label( "" );
		window.add( l1 );
		window.setVisible( true );
	}// Ende Taschenrechner

	/**
	 * Wird aufgerufen, wenn das Fenster geschlossen wird
	 */
	public void windowClosing( WindowEvent e ) {
		System.exit( 0 );
	}

	/**
	 * Wird aufgerufen, wenn das Fenster aktiviert wird
	 */
	public void windowActivated( WindowEvent e ) {
	}

	/**
	 * Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde
	 */
	public void windowClosed( WindowEvent e ) {
	}

	/**
	 * Wird aufgerufen, wenn das Fenster deaktiviert wird
	 */
	public void windowDeactivated( WindowEvent e ) {
	}

	/**
	 * Wird aufgerufen, wenn das Fenster wieder hochgeholt wird
	 */
	public void windowDeiconified( WindowEvent e ) {
	}

	/**
	 * Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird
	 */
	public void windowIconified( WindowEvent e ) {
	}

	/**
	 * Wird aufgerufen, wenn Fenster geöffnet wurde
	 */
	public void windowOpened( WindowEvent e ) {
	}

	/**
	 * Erkennung von Eingaben
	 */
	public void actionPerformed( ActionEvent ea ) {
		int h;
		String inh = new String();

		String but = ea.getActionCommand();
		if( but == "0" ){
			ziffer( "0" );
		}
		else if( but == "1" ){
			ziffer( "1" );
		}
		else if( but == "2" ){
			ziffer( "2" );
		}
		else if( but == "3" ){
			ziffer( "3" );
		}
		else if( but == "4" ){
			ziffer( "4" );
		}
		else if( but == "5" ){
			ziffer( "5" );
		}
		else if( but == "6" ){
			ziffer( "6" );
		}
		else if( but == "7" ){
			ziffer( "7" );
		}
		else if( but == "8" ){
			ziffer( "8" );
		}
		else if( but == "9" ){
			ziffer( "9" );
		}
		else if( but == "+" ){
			verkn( "+" );
		}
		else if( but == "-" ){
			verkn( "-" );
		}
		else if( but == "*" ){
			verkn( "*" );
		}
		else if( but == "/" ){
			verkn( "/" );
		}
		else if( but == "." ){
			if( Rechne ){
				t1.setText( "0." );
				Rechne = false;
			}
			else{
				inh = new String( t1.getText() );
				h = inh.indexOf( "." );
				if( h < 0 ){
					t1.setText( t1.getText() + "." );
				}
			}// else
		}
		else if( but == "C" ){
			t1.setText( "" );
			Rechne = true;
			Zahl = 0;
			Operation = "";
		}
		else if( but == "=" ){
			verkn( "" );
		}
	}// Ende actionPerformed

	/**
	 * schreib in Display
	 */
	public void ziffer( String s ) {
		if( Rechne ){
			t1.setText( s );
			Rechne = false;
		}
		else{
			String inh = new String( t1.getText() );
			/** zähle die Punkte* */
			int h = inh.indexOf( "." );
			/** bei 6 ohne punkt oder 25 mit punkt* */
			if( ((h < 0) && (inh.length() < 6))
					|| ((h > 0) && (inh.length() < 25)) )
				t1.setText( t1.getText() + s );
			else
				return;
		}
	}// Ende ziffer

	/**
	 * durchführung der Rechnung
	 */
	public void verkn( String s ) {
		Double wert;
		Rechne = true;
		try{
			if( Operation == "" ){
				wert = new Double( t1.getText() );
				Zahl = wert.doubleValue();
				Operation = s;
			}
			else{
				wert = new Double( t1.getText() );
				if( Operation == "+" ){
					Zahl = Zahl + wert.doubleValue();
				}
				else if( Operation == "-" ){
					Zahl = Zahl - wert.doubleValue();
				}
				else if( Operation == "*" ){
					Zahl = Zahl * wert.doubleValue();
				}
				else if( Operation == "/" ){
					Zahl = Zahl / wert.doubleValue();
				}
				Operation = s;
				t1.setText( s.valueOf( Zahl ) );
			}
		}// try
		catch( ArithmeticException e ){
			t1.setText( "Error:" + e );
			ziffer( "" );
		}
		catch( Throwable e ){
			t1.setText( "Fehler:" + e );
			ziffer( "" );
		}
	}// Ende verkn

	/**
	 * main
	 */
	public static void main( String[] args ) {
		Taschenrechner meinFenster = new Taschenrechner();
	}// Ende main
}

Edit by Beni: Code eingerückt.
 

mic_checker

Top Contributor
ayk hat gesagt.:
hallo,
ich hab ein problem mit meinem quellcode.
und zwar weis ich nicht, wie ich die einzelnen Methoden im Programm in einzelnen java dateien zerlegen kann.
mit der main hab ich es geschafft. das ging ganz einfach.
aber z.B. die Taschenrechner() hab ich keine ahnung, wie ich die raus krieg?????

Taschenrechner() ist keine gewöhnliche Methode, es ist der Konstruktor deiner Klasse Taschenrechner.java.

Code:
	/**
	 * schreib in Display
	 */
	public void ziffer( String s ) {
		if( Rechne ){
			t1.setText( s );
			Rechne = false;
		}
		else{
			String inh = new String( t1.getText() );
			/** zähle die Punkte* */
			int h = inh.indexOf( "." );
			/** bei 6 ohne punkt oder 25 mit punkt* */
			if( ((h < 0) && (inh.length() < 6))
					|| ((h > 0) && (inh.length() < 25)) )
				t1.setText( t1.getText() + s );
			else
				return;
		}
	}// Ende ziffer

	/**
	 * durchführung der Rechnung
	 */
	public void verkn( String s ) {
		Double wert;
		Rechne = true;
		try{
			if( Operation == "" ){
				wert = new Double( t1.getText() );
				Zahl = wert.doubleValue();
				Operation = s;
			}
			else{
				wert = new Double( t1.getText() );
				if( Operation == "+" ){
					Zahl = Zahl + wert.doubleValue();
				}
				else if( Operation == "-" ){
					Zahl = Zahl - wert.doubleValue();
				}
				else if( Operation == "*" ){
					Zahl = Zahl * wert.doubleValue();
				}
				else if( Operation == "/" ){
					Zahl = Zahl / wert.doubleValue();
				}
				Operation = s;
				t1.setText( s.valueOf( Zahl ) );
			}
		}// try
		catch( ArithmeticException e ){
			t1.setText( "Error:" + e );
			ziffer( "" );
		}
		catch( Throwable e ){
			t1.setText( "Fehler:" + e );
			ziffer( "" );
		}
	}// Ende verkn

Meinst du diese beiden Methoden mit "methoden in andere dateien" zerlegen?
 

foobar

Top Contributor
1. Eigene Buttonklasse ableiten, dadurch sparst du ein paar Zeilen Code.
Code:
class MyButton extends Button
{
   MyButton(Frame frm)
    {
      this.setSize( 40, 40 );
       this.addActionListener( frm );   
    }
}

2. Layoutmanager verwenden (Gridlayout, BorderLayout, Gridbaglayout etc)
3. Die Listener könntest du auch in eine eigene Klasse verlagern.
 
A

ayk

Gast
he, danke schon mal
@ mic checker
ja, mit den beiden wollte ich das machen.
ich glaube in eigene classen aufteilen

@foobar
das ist eine gut idee mit den buttons!
ich glaub das ist dann ein Kostruktor oder?
kannst du mir da vieleicht noch etwas helfe, wie das weiter geht
 

mic_checker

Top Contributor
ayk hat gesagt.:
he, danke schon mal
@ mic checker
ja, mit den beiden wollte ich das machen.
ich glaube in eigene classen aufteilen
Ja, wenn du die Methoden unbedingt raushaben willst dann schreib dir ne neue Klasse die die jeweilige Methode enthält. Viel mehr bräuchtest du dann auch nicht in diesen Klassen zu implementieren.

@foobar
das ist eine gut idee mit den buttons!
ich glaub das ist dann ein Kostruktor oder?
kannst du mir da vieleicht noch etwas helfe, wie das weiter geht

Code:
class MyButton extends Button
{
   MyButton(Frame frm)
    {
      this.setSize( 40, 40 );
       this.addActionListener( frm );   
    }
}

Ja , das ist ein Konstruktor - der Klasse MyButton...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Zusammengesetzte Nomen/Straßennamen mit Regex-Ausdrücken trennen Java Basics - Anfänger-Themen 8
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
CptK Variablen String Trennen Java Basics - Anfänger-Themen 8
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
D Logik von GUI trennen Java Basics - Anfänger-Themen 3
D BlueJ Java: Strings voneinander trennen Java Basics - Anfänger-Themen 11
D Schnittstelle-Code vom Programm Trennen Java Basics - Anfänger-Themen 5
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
Z Jump and Run - Grafik,Logik und GUI trennen Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
I String trennen und verschiedene Wörter holen Java Basics - Anfänger-Themen 6
kaoZ Logik und Gui trennen Java Basics - Anfänger-Themen 3
P int-Werte im String (mit Hilfe vom Leerzeichen) trennen? Java Basics - Anfänger-Themen 2
X Multi Array zu einzelnen Arrays trennen Java Basics - Anfänger-Themen 7
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
J Text nach Satzzeichen trennen Java Basics - Anfänger-Themen 7
C Auslesen eines Feldes und durch ; o.Ä. trennen Java Basics - Anfänger-Themen 38
F wörter trennen und in txt-file schreiben Java Basics - Anfänger-Themen 5
M string trennen Java Basics - Anfänger-Themen 9
F Zugriffsproblem - Funktion von Grafik trennen Java Basics - Anfänger-Themen 6
D Jahreszahl trennen für Wochentagberechnen Java Basics - Anfänger-Themen 4
K Bedingungen mit "und" trennen ? Java Basics - Anfänger-Themen 2
B String ordentlich trennen (regex, split())? Java Basics - Anfänger-Themen 11
G string trennen in java 1.3 Java Basics - Anfänger-Themen 7
T GUI und Steuerung trennen ? Java Basics - Anfänger-Themen 13
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
M Strings nach ASCII Zeichen trennen. Java Basics - Anfänger-Themen 7
N Pfad von Datei trennen Java Basics - Anfänger-Themen 8
S String trennen Java Basics - Anfänger-Themen 2
G Zeichenkette anhand einer anderen Zeichenkette trennen Java Basics - Anfänger-Themen 6
B Strasse und Hausnummer in String trennen? Java Basics - Anfänger-Themen 6
S Zahl von String Trennen Java Basics - Anfänger-Themen 4
S Eingabestrom mit .split(";") trennen Java Basics - Anfänger-Themen 6
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
L Rekursive Methoden Java Basics - Anfänger-Themen 14
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W Methoden aufrufen - auch klassenübergreifend? Java Basics - Anfänger-Themen 9
Kotelettklopfer Methoden nicht aufrufbar Java Basics - Anfänger-Themen 34
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
S Methoden - Warum int wenn auch void? Java Basics - Anfänger-Themen 3
H Kann man Methoden öfter aufrufen? Java Basics - Anfänger-Themen 2
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
Zeppi OOP Methoden mit einander Verknüpfen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
Junger_Basileus Celsius -> Fahrenheit / Strukturierung in statischen Methoden Java Basics - Anfänger-Themen 7
J Verschachtelte Methoden Java Basics - Anfänger-Themen 9
H Methoden in anderen Methoden aufrufen Java Basics - Anfänger-Themen 6
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Generics Methoden Java Basics - Anfänger-Themen 7
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben