Galera estou com seguinte codigo de uma calculadora em Java e não consegui introduzir a função limpa tela nesse codigo se puderem me ajudar:
package calc.br.ifsp;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class calc {
public static void main(String[] args) {
CalculadoraFrame frame = new CalculadoraFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible( true );
}
}
class CalculadoraFrame extends JFrame{
public CalculadoraFrame(){
setTitle("Calculadora");
calcpanel panel = new calcpanel();
add( panel );
pack();
}
}
class calcpanel extends JPanel{
public calcpanel(){
setLayout( new BorderLayout() );
result = 0;
lastCommand = "=";
start = true;
display = new JButton("0");
display.setEnabled( false );
add( display, BorderLayout.CENTER );
Action insertAction = new InsertAction();
Action commandAction = new CommandAction();
panel = new JPanel();
panel.setLayout( new GridLayout( 5, 4 ));
display.setFont(new Font("Arial", Font.BOLD, 18));
panel.setSize(290,300);
panel.setPreferredSize(new Dimension(300,200));
addButton("7", insertAction );
addButton("8", insertAction );
addButton("9", insertAction );
addButton("/", commandAction );
addButton("4", insertAction );
addButton("5", insertAction );
addButton("6", insertAction );
addButton("*", commandAction );
addButton("1", insertAction );
addButton("2", insertAction );
addButton("3", insertAction );
addButton("-", commandAction );
addButton("0", insertAction );
addButton(".", insertAction );
addButton("=", commandAction );
addButton("+", commandAction );
addButton("C", commandAction );
add( panel, BorderLayout.SOUTH );
// captura tecla, a letra teclada � viculada a uma string, por exemplo
// panel.2
InputMap imap = getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
imap.put( KeyStroke.getKeyStroke('0'), "panel.0");
imap.put( KeyStroke.getKeyStroke('1'), "panel.1");
imap.put( KeyStroke.getKeyStroke('2'), "panel.2");
imap.put( KeyStroke.getKeyStroke('3'), "panel.3");
imap.put( KeyStroke.getKeyStroke('4'), "panel.4");
imap.put( KeyStroke.getKeyStroke('5'), "panel.5");
imap.put( KeyStroke.getKeyStroke('6'), "panel.6");
imap.put( KeyStroke.getKeyStroke('7'), "panel.7");
imap.put( KeyStroke.getKeyStroke('8'), "panel.8");
imap.put( KeyStroke.getKeyStroke('9'), "panel.9");
imap.put( KeyStroke.getKeyStroke('.'), "panel.ponto");
imap.put( KeyStroke.getKeyStroke('+'), "panel.somar");
imap.put( KeyStroke.getKeyStroke('-'), "panel.subtrair");
imap.put( KeyStroke.getKeyStroke('*'), "panel.multiplicar");
imap.put( KeyStroke.getKeyStroke('/'), "panel.dividir");
imap.put( KeyStroke.getKeyStroke('='), "panel.igual");
imap.put( KeyStroke.getKeyStroke('C'), "panel.BackSpace");
// mapa que vincula a string da tecla, por exemplo
// panel.2 a a��o desejada
ActionMap amap = getActionMap();
amap.put("panel.0", insertAction );
amap.put("panel.1", insertAction );
amap.put("panel.2", insertAction );
amap.put("panel.3", insertAction );
amap.put("panel.4", insertAction );
amap.put("panel.5", insertAction );
amap.put("panel.6", insertAction );
amap.put("panel.7", insertAction );
amap.put("panel.8", insertAction );
amap.put("panel.9", insertAction );
amap.put("panel.ponto", insertAction );
amap.put("panel.somar", commandAction );
amap.put("panel.subtrair", commandAction );
amap.put("panel.multiplicar", commandAction );
amap.put("panel.dividir", commandAction );
amap.put("panel.igual", commandAction );
amap.put("panel.BackSpace", commandAction );
}
private void addButton( String label, ActionListener listener ){
JButton button = new JButton( label );
button.addActionListener( listener );
panel.add( button );
}
private class InsertAction extends AbstractAction{
public void actionPerformed( ActionEvent event ){
String input = event.getActionCommand();
if( start )
{
display.setText("");
start = false;
}
display.setText( display.getText() + input );
}
}
private class CommandAction extends AbstractAction{
public void actionPerformed( ActionEvent event ){
String command = event.getActionCommand();
if( start )
{
if( command.equals("-"))
{
display.setText(command);
start = false;
}
else
{
lastCommand = command;
}
}
else
{
calculate( Double.parseDouble(display.getText()));
lastCommand = command;
start = true;
}
}
}
public void calculate( double x ){
if ( lastCommand.equals("+") ) result += x;
else if ( lastCommand.equals("-") ) result -= x;
else if ( lastCommand.equals("*") ) result *= x ;
else if ( lastCommand.equals("/") ) result /= x ;
else if ( lastCommand.equals("=") ) result = x ;
else if ( lastCommand.equals( KeyEvent.VK_ENTER ) ) result = x ;
display.setText("" + result);
}
private JButton display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
}
