Corrigiendo bugs listeners
This commit is contained in:
parent
b660d8d551
commit
95805c3efa
@ -2,14 +2,12 @@ package VistaControlador;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import Logica.Gestion;
|
||||
import Logica.Transaccion;
|
||||
|
||||
public class Controlador implements ActionListener,ChangeListener{
|
||||
|
||||
@ -18,7 +16,7 @@ public class Controlador implements ActionListener,ChangeListener{
|
||||
this.vista=vista;
|
||||
this.aniadirListeners();
|
||||
}
|
||||
@Override
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if(e.getActionCommand().equals(this.vista.boton.getActionCommand())) {
|
||||
String nombre=JOptionPane.showInputDialog("Introduce un nuevo gasto o ingreso");
|
||||
@ -33,11 +31,10 @@ public class Controlador implements ActionListener,ChangeListener{
|
||||
}
|
||||
|
||||
try {
|
||||
this.vista.aniadirElemento(nombre, Integer.parseInt(dinero));
|
||||
this.vista.aniadirElemento(nombre, Integer.parseInt(dinero),this);
|
||||
this.vista.menu.total.setText(String.valueOf(Gestion.getTotal()));
|
||||
this.vista.menu.total.revalidate();
|
||||
this.vista.menu.total.repaint();
|
||||
this.aniadirListeners();
|
||||
}catch (NumberFormatException ex) {
|
||||
JOptionPane.showMessageDialog(null, "Debe introducir un numero", "error", JOptionPane.WARNING_MESSAGE);
|
||||
}
|
||||
@ -45,33 +42,31 @@ public class Controlador implements ActionListener,ChangeListener{
|
||||
JCheckBox pulsado=(JCheckBox)e.getSource();
|
||||
for(int i=0;i<vista.gestiones.getElementos().size();i++) {
|
||||
if(vista.gestiones.getElementos().get(i).toString().equals(pulsado.getText())) {
|
||||
vista.gestiones.alterarVisibilidad(!vista.gestiones.getElementos().get(i).getVisivilidad(), i);
|
||||
//vista.gestiones.alterarVisibilidad(!vista.gestiones.getElementos().get(i).getVisivilidad(), i);
|
||||
vista.gestiones.alterarVisibilidad(pulsado.getFocusTraversalKeysEnabled(), i);
|
||||
this.vista.menu.total.setText(String.valueOf(Gestion.getTotal()));
|
||||
this.vista.menu.total.revalidate();
|
||||
this.vista.menu.total.repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void aniadirListeners() {
|
||||
vista.boton.addActionListener(this);
|
||||
vista.boton.setActionCommand("Aniadir");
|
||||
int contador=0;
|
||||
for(JCheckBox check:this.vista.transacciones) {
|
||||
check.addActionListener(this);
|
||||
check.setActionCommand("pulsar "+contador);
|
||||
contador++;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
// TODO Auto-generated method stub
|
||||
JCheckBox pulsado=(JCheckBox)e.getSource();
|
||||
for(Transaccion transaaccio:vista.gestiones.getElementos()) {
|
||||
if(transaaccio.toString().equals(pulsado.getText())) {
|
||||
transaaccio.alterarVisivilidad(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void aniadirListeners() {
|
||||
vista.boton.addActionListener(this);
|
||||
for(JCheckBox check:this.vista.transacciones) {
|
||||
check.addActionListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,10 +19,6 @@ public class Menu extends JFrame{
|
||||
protected Vista gastos;
|
||||
protected JTextArea total;
|
||||
public Menu() {
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
this.setLayout(new GridBagLayout());
|
||||
GridBagConstraints constrain=new GridBagConstraints();
|
||||
this.ingresos=new Vista(this);
|
||||
|
@ -13,6 +13,7 @@ import Logica.*;
|
||||
|
||||
public class Vista extends JPanel{
|
||||
private int x,y;
|
||||
private static final int altocheck=28;
|
||||
protected Gestion gestiones;
|
||||
protected JButton boton;
|
||||
protected LinkedList<JCheckBox> transacciones;
|
||||
@ -20,7 +21,6 @@ public class Vista extends JPanel{
|
||||
JScrollPane panel;
|
||||
Menu menu;
|
||||
public Vista(Menu menu) {
|
||||
//this.setLayout(new );
|
||||
this.transacciones=new LinkedList<JCheckBox>();
|
||||
this.menu=menu;
|
||||
this.x=100;
|
||||
@ -30,22 +30,23 @@ public class Vista extends JPanel{
|
||||
this.cuadro=new JPanel();
|
||||
this.panel=new JScrollPane(cuadro);
|
||||
this.panel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
this.panel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
||||
this.panel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
cuadro.setPreferredSize(new Dimension(x, y));
|
||||
panel.setPreferredSize(new Dimension(100,200));
|
||||
panel.setVisible(true);
|
||||
this.add(panel);
|
||||
this.aniadirElemento("asdfa", 0);
|
||||
}
|
||||
|
||||
public void aniadirElemento(String nombre, int dinero) {
|
||||
public void aniadirElemento(String nombre, int dinero, Controlador controlador) {
|
||||
Transaccion transaccion=new Transaccion(nombre, dinero);
|
||||
this.gestiones.aniadirGasto(transaccion);
|
||||
JCheckBox check=new JCheckBox(transaccion.toString());
|
||||
check.setSelected(true);
|
||||
check.setSize(new Dimension(x,Vista.altocheck));
|
||||
check.addActionListener(controlador);
|
||||
this.transacciones.add(check);
|
||||
this.cuadro.add(check);
|
||||
this.y+=28;
|
||||
//System.out.println(this.y);
|
||||
this.y+=Vista.altocheck;
|
||||
cuadro.setPreferredSize(new Dimension(x, y));
|
||||
this.revalidate();
|
||||
this.repaint();
|
||||
|
Loading…
Reference in New Issue
Block a user