Diferencia entre revisiones de «Usuario:ManuelRomero/interfaz»
De WikiEducator
(Página creada con '=VentanaCalculadora= Es la clase gráfica Lleva un atributo de tipo de calculadora Gestion las acciones gráficas Es interesanten tener encuenta como interactual con otras clase…') |
|||
(Una revisión intermedia por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | {{:Usuario:ManuelRomero/CursoJavaUml/Practicas/PracticaCalculadora/nav}} | ||
+ | <br> | ||
=VentanaCalculadora= | =VentanaCalculadora= | ||
− | Es la clase gráfica | + | ;Es la clase gráfica |
− | Lleva un atributo de tipo de calculadora | + | :Lleva un atributo de tipo de calculadora |
− | Gestion las acciones gráficas | + | :Gestion las acciones gráficas |
− | Es interesanten tener encuenta como | + | :Es interesanten tener encuenta como interactua con otras clases |
+ | #envía un mensaje al objeto de la clase '''ActualizaEstado''' enviándoles la entrada, el valor de la pantalla | ||
+ | #Lee el atributo resultado de la clase '''AccionCalculadora''' objeto '''accion''' y lo pone en la pantalla | ||
<source lang = java> | <source lang = java> | ||
Character entrada = ((JButton)e.getSource()).getText().charAt(0); | Character entrada = ((JButton)e.getSource()).getText().charAt(0); |
Última revisión de 12:46 4 may 2012
VentanaCalculadora
- Es la clase gráfica
- Lleva un atributo de tipo de calculadora
- Gestion las acciones gráficas
- Es interesanten tener encuenta como interactua con otras clases
- envía un mensaje al objeto de la clase ActualizaEstado enviándoles la entrada, el valor de la pantalla
- Lee el atributo resultado de la clase AccionCalculadora objeto accion y lo pone en la pantalla
Character entrada = ((JButton)e.getSource()).getText().charAt(0); estado.setTipo(this.modoOperacion); estado.actualizaEstado(entrada,tPantalla.getText(),accion,modoOperacion); tPantalla.setText(accion.getResultado()); //tPantalla.setText(tPantalla.getText()+entrada);
Código
package calculadora; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class VentanaCalculadora extends JFrame implements ActionListener{ //Estdo de operacion de la calculadora final int REAL =0; final int RACIONAL = 1; EstadoCalculadora estado = new EstadoCalculadora(); AccionCalculadora accion = new AccionCalculadora(); int modoOperacion ; JButton bDiv = new JButton(); JButton bSep = new JButton(); // Definimos atributos de mi clase JTextField tPantalla = new JTextField(); //Definimos botones Character [] botones ={'7','8','9','C',(char)8592, //Caracter retroceso '4','5','6','+','%', '1','2','3','-',(char)177,//caracter +/- '0','*','/','.','='}; Font fuente = new Font("Arial", Font.BOLD,18); GridLayout lBotones = new GridLayout(4,5,5,5); BorderLayout lPpal = new BorderLayout(); JPanel pBotones = new JPanel(); //Menus JMenuBar barraMenu = new JMenuBar(); JMenu mEstilo = new JMenu("Estilo"); JMenu mAyuda = new JMenu("Ayuda"); JMenu mSalir = new JMenu("Salir"); private int tipo; //Para saber como interpretar las entradas JRadioButtonMenuItem bRacional = new JRadioButtonMenuItem("Racionall"); JRadioButtonMenuItem bReal = new JRadioButtonMenuItem("Real"); ButtonGroup grupo = new ButtonGroup(); VentanaCalculadora(){ addBotones(); addMenu(); setJMenuBar(barraMenu); modoOperacion=REAL; setTitle("Calculadora Real"); setLayout(lPpal); tPantalla.setHorizontalAlignment(JTextField.RIGHT); tPantalla.setFont(fuente); add(tPantalla,BorderLayout.NORTH); add(pBotones, BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); } private void addMenu(){ barraMenu.add(mEstilo); barraMenu.add(mAyuda); barraMenu.add(mSalir); //Añadir escuchadores de evento a los botones bReal.addActionListener(this); bRacional.addActionListener(this); grupo.add(bRacional); grupo.add(bReal); bReal.setSelected(true); mEstilo.add(bRacional); mEstilo.add(bReal); } private void addBotones(){ pBotones.setLayout(lBotones); for (int i=0;i<20;i++){ JButton b = new JButton(botones[i].toString()); b.setFont(fuente); b.addActionListener(this); pBotones.add(b); if (i==17){ bDiv=b; } if (i==18){ bSep=b; } } } public void actionPerformed(ActionEvent e) { if (e.getSource() ==bReal){ modoOperacion=REAL; setTitle("Calculadora Real"); bDiv.setText("/"); bSep.setText("."); estado.setTipo(this.modoOperacion); estado.inicializa(accion); tPantalla.setText(accion.getResultado()); }else if (e.getSource() ==bRacional){ modoOperacion=RACIONAL; setTitle("Calculadora Racional"); bDiv.setText(":"); bSep.setText("/"); estado.setTipo(this.modoOperacion); estado.inicializa(accion); tPantalla.setText(accion.getResultado()); }else{ Character entrada = ((JButton)e.getSource()).getText().charAt(0); estado.setTipo(this.modoOperacion); estado.actualizaEstado(entrada,tPantalla.getText(),accion,modoOperacion); tPantalla.setText(accion.getResultado()); //tPantalla.setText(tPantalla.getText()+entrada); } } public static void main (String []s){ VentanaCalculadora v = new VentanaCalculadora(); } }