Rekenmachine "netjes" maken

Status
Niet open voor verdere reacties.

Beuzer

Gebruiker
Lid geworden
8 feb 2007
Berichten
23
Hallo allemaal,

Ik heb een rekenmachine gemaakt met een aantal functies.
Nu is het programma niet "mooi" of "netjes" geprogrammeerd.
Graag zou ik tips en hints ontvangen voor wat ik beter kan doen in de volgende code:

Code:
package org.rekenmachine;

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

import javax.swing.*;


public class Rekenmachine extends JFrame {
	  
		
	    // Maakt nieuwe tekstvelden aan
	    TextField invoervak1, invoervak2, resultaat;
	    
	  

		// Maakt nieuwe buttons aan
	    Button keer, plus, procent;
	    
	    // Zegt dat getal 1, 2 en het resultaatgetal double moeten zijn, dus ook achter de ",".
	    double invoergetal1, invoergetal2, resultaatgetal;


public Rekenmachine() {
    super.setLayout(new GridLayout(3,3));
    super.setSize(220,150);
    super.setBackground(Color.blue);
    super.setVisible(true); 
    super.setResizable(false);
  } 


public static void main(String[] args) {
new Rekenmachine(); 
}

{
   
invoervak1 = new TextField(12);
invoervak1.setBackground(Color.black);

invoervak1.setForeground(Color.white);
invoervak2 = new TextField(12);
invoervak2.setBackground(Color.black);

invoervak2.setForeground(Color.white);
resultaat = new TextField(12);
resultaat.setBackground(Color.black);
resultaat.setText("Resultaat");
resultaat.setForeground(Color.white);


keer = new Button( "x" );
KeeractionListener();

procent = new Button ( "%" );
ProcentactionListener();

plus = new Button ( "+" );
PlusactionListener();




add(invoervak1);
add(invoervak2);
add(resultaat);
add(plus);
add(keer);
add(procent);

}
public void KeeractionListener() {
	keer.addActionListener( new maalHandler() );
	keer.setBounds(new Rectangle(90, 58, 100, 80));
}
public void ProcentactionListener() {
	procent.addActionListener( new procentHandler());
	procent.setBounds(new Rectangle(90, 58, 100, 80));
}

public void PlusactionListener() {
	plus.addActionListener( new plusHandler());
	plus.setBounds(new Rectangle(90, 58, 100, 80));
}



public void classDeBerekening() {
	String STRinvoer1 = invoervak1.getText();
	invoergetal1 = Double.parseDouble(STRinvoer1);
	
	String STRinvoer2 = invoervak2.getText();
	invoergetal2 = Double.parseDouble(STRinvoer2);
}


class maalHandler implements ActionListener 
{

    public void actionPerformed(ActionEvent e) 
    {
        classDeBerekening();
        resultaatgetal = invoergetal1 * invoergetal2; 
        resultaat.setText("" + resultaatgetal);
       
    }
}


class plusHandler implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		classDeBerekening();
		resultaatgetal = invoergetal1 + invoergetal2;
			resultaat.setText("" + resultaatgetal);
	}
}

class procentHandler implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		classDeBerekening();
		resultaatgetal = invoergetal1 % invoergetal2;
		resultaat.setText("" + resultaatgetal);
	}
}

}
Ik wil dit er dus professioneel ofwel netjes uit laten zien.
Ik heb echt hulp nodig, als iemand me kan helpen ben ik ook zeer dankbaar.
 
Laatst bewerkt:
wat bedoel je met netjes uitzien, dat het eruit ziet net als calculator in windows ???

zouw je overigens een foto kunnen neer zetten hoe het er nu uit ziet.

mvg, michel
 
Nee, ik bedoelde eigenlijk de code zelf.
Het is nu een beetje slordig waardoor het moeilijker wordt om het aan te passen.
Ik wil dat het er professioneel uit ziet, dus alles moet goed gestructueerd zijn.
Ik post morgen wel even een plaatje, ik heb hier het programma niet.
Bedankt voor je reactie!
 
Je kan beginnen om de code die nodig is voor het tekenen van de rekenmachine en de code die berekening doet helemaal te scheiden.

De code van de drie knoppen lijkt heel veel op elkaar. De code die hetzelfde is kan je in een super klasse zetten. De code die verschilt tussen de knoppen zet je dan in de 3 subklasses.

succes
 
Bedankt voor je reactie, hiermee kom ik een heel eind.
Zou je misschien een klein voorbeeld willen geven?
Heb zelf net zitten proberen maar dat schiet niet echt op.
 
Wat ik op mijn opleiding leer, is javadoc. Dit is commentaar boven elke methode, dat uitlegt wat de methode doet, wat de methode nodig heeft, uitvoert etc. Hier kun je een html file van maken, en dat komt er zoiets uit: klik

bijvoorbeeld:
Code:
public int plusEen(int a){
    return a+1;
}

[code]
Heel simpel. Met javadoc zou je er dit bij kunnen zetten:

[code]
/**
* Hoogt een getal met 1 op
* @param a het getal dat met 1 opgehoogd moet worden
* @return het ingegeven getal, plus 1
* @require a != null
* @ensure result = a+1
*/

public int plusEen(int a){
    return a+1;
}

Probeer zoiets maar een keer. Er zal in je IDE vast wel ergens een functie zijn om Javadoc te exporteren ;)

Het voordeel van Javadoc is dus dat mensen (jij, anderen) zónder de code te moeten doorspitten, kunnen zien (in de html file) wat een methode doet, wat een methode nodig heeft, en als resultaat geeft.

Ik zou zeggen, probeer het even! ;) Succes!
 
Bedankt voor jullie reacties, ben ik zeer dankbaar voor.
Ben er helaas nog niet uit.
Volgens mij moet ik me bezig gaan houden met een "superclass" zoals Skinflowers hierboven al zei.
Iemand misschien een voorbeeld voor mijn rekenmachine met superclass?
Hier een plaatje van mijn rekenmachine:
89386213wv2.png


Heb al veel informatie gezocht over superclasses, maar kan niet echt iets nuttigs vinden.
Ik hoop dat iemand me kan helpen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan