Inicio soporte graficos, añadido soporte para diferenciar gastos e

ingresos
This commit is contained in:
Guillermo Roche 2019-11-12 21:48:19 +01:00
parent 8af689363a
commit ba84d7d15b
10 changed files with 76 additions and 23 deletions

1
bin/.gitignore vendored
View File

@ -1 +1,2 @@
/VistaControlador/ /VistaControlador/
/Logica/

Binary file not shown.

Binary file not shown.

View File

@ -3,8 +3,8 @@ import java.util.Vector;
public class Gestion{ public class Gestion{
private Vector<Transaccion> gestiones; private Vector<Transaccion> gestiones;
private int suma; private float suma;
private static int total; private static float total;
public Gestion() { public Gestion() {
this.gestiones=new Vector<Transaccion>(); this.gestiones=new Vector<Transaccion>();
@ -15,14 +15,18 @@ public class Gestion{
public void aniadirGasto(Transaccion transaccion) { public void aniadirGasto(Transaccion transaccion) {
this.gestiones.add(transaccion); this.gestiones.add(transaccion);
this.suma+=transaccion.getDinero(); this.suma+=transaccion.getDinero();
if(transaccion.isPositivo()) {
Gestion.total+=transaccion.getDinero(); Gestion.total+=transaccion.getDinero();
}else {
Gestion.total-=transaccion.getDinero();
}
} }
public int getSuma() { public float getSuma() {
return this.suma; return this.suma;
} }
public static int getTotal() { public static float getTotal() {
return Gestion.total; return Gestion.total;
} }
@ -33,11 +37,19 @@ public class Gestion{
public void alterarVisibilidad(int elemento) { public void alterarVisibilidad(int elemento) {
if(this.gestiones.get(elemento).alterarVisivilidad()) { if(this.gestiones.get(elemento).alterarVisivilidad()) {
this.suma+=this.gestiones.get(elemento).getDinero(); this.suma+=this.gestiones.get(elemento).getDinero();
if(this.gestiones.get(elemento).isPositivo()) {
Gestion.total+=this.gestiones.get(elemento).getDinero(); Gestion.total+=this.gestiones.get(elemento).getDinero();
}else { }else {
this.suma-=this.gestiones.get(elemento).getDinero();
Gestion.total-=this.gestiones.get(elemento).getDinero(); Gestion.total-=this.gestiones.get(elemento).getDinero();
} }
}else {
this.suma-=this.gestiones.get(elemento).getDinero();
if(this.gestiones.get(elemento).isPositivo()) {
Gestion.total-=this.gestiones.get(elemento).getDinero();
}else {
Gestion.total+=this.gestiones.get(elemento).getDinero();
}
}
} }
} }

View File

@ -2,13 +2,25 @@ package Logica;
public class Transaccion { public class Transaccion {
private String nombre; private String nombre;
private int dinero; private float dinero;
private boolean visible; private boolean visible;
private int dia;
private boolean positivo;
public Transaccion(String nombre, int dinero){ public Transaccion(String nombre, float dinero){
this.nombre=nombre; this.nombre=nombre;
this.dinero=dinero; this.dinero=dinero;
this.visible=true; this.visible=true;
this.dia=1;
this.positivo=true;
}
public Transaccion(String nombre, float dinero, int dia, boolean positivo){
this.nombre=nombre;
this.dinero=dinero;
this.visible=true;
this.positivo=positivo;
this.dia=dia;
} }
public String toString() { public String toString() {
@ -24,7 +36,16 @@ public class Transaccion {
return this.visible; return this.visible;
} }
public int getDinero() { public float getDinero() {
/*if(positivo) {
return this.dinero;
}else {
return -this.dinero;
}*/
return this.dinero; return this.dinero;
} }
public boolean isPositivo() {
return this.positivo;
}
} }

View File

@ -33,7 +33,7 @@ public class ControladorAniadirVisualizar implements ActionListener,ChangeListen
} }
try { try {
this.vista.aniadirElemento(nombre, Integer.parseInt(dinero),this); this.vista.aniadirElemento(nombre, Float.parseFloat(dinero),this);
this.vista.menu.panel.actualizarDatos(this.vista.gestiones); this.vista.menu.panel.actualizarDatos(this.vista.gestiones);
this.vista.menu.panel.revalidate(); this.vista.menu.panel.revalidate();
this.vista.menu.panel.repaint(); this.vista.menu.panel.repaint();

View File

@ -2,21 +2,33 @@ package VistaControlador;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart; import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.Plot; import org.jfree.data.xy.XYSeries;
import org.jfree.chart.plot.XYPlot; import org.jfree.data.xy.XYSeriesCollection;
public class ControladorPanelLateral implements ActionListener{ public class ControladorPanelLateral implements ActionListener{
private VistaPanelLateral vista; private VistaPanelLateral vista;
public ControladorPanelLateral(VistaPanelLateral vista) {
this.vista=vista;
this.aniadirElementos();
}
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(this.vista.mostrarEstadisticas.getActionCommand())) { if(e.getActionCommand().equals(this.vista.mostrarEstadisticas.getActionCommand())) {
XYPlot plot=new XYPlot(); XYSeries serie=new XYSeries("Mes");
serie.add(10,1);
JFreeChart chart=new JFreeChart(plot); serie.add(4,2);
serie.add(90,10);
XYSeriesCollection dataset=new XYSeriesCollection(serie);
JFreeChart chart=ChartFactory.createXYLineChart("Mes", "Dias", "Gastos", dataset);
ChartFrame frame=new ChartFrame("Estadisricas", chart); ChartFrame frame=new ChartFrame("Estadisricas", chart);
frame.setVisible(true); frame.setVisible(true);
frame.setSize(700,500);
}else if(e.getActionCommand().equals(this.vista.elegirMes.getActionCommand())){
} }
} }
@ -24,6 +36,8 @@ public class ControladorPanelLateral implements ActionListener{
private void aniadirElementos() { private void aniadirElementos() {
this.vista.mostrarEstadisticas.addActionListener(this); this.vista.mostrarEstadisticas.addActionListener(this);
this.vista.mostrarEstadisticas.setActionCommand("Mostrar estadisticas"); this.vista.mostrarEstadisticas.setActionCommand("Mostrar estadisticas");
this.vista.elegirMes.addActionListener(this);
this.vista.elegirMes.setActionCommand("Elegir mes");
} }
} }

View File

@ -28,8 +28,8 @@ public class Menu extends JFrame{
this.setLayout(new GridBagLayout()); this.setLayout(new GridBagLayout());
GridBagConstraints constrain=new GridBagConstraints(); GridBagConstraints constrain=new GridBagConstraints();
this.panel=new VistaPanelLateral(constrain); this.panel=new VistaPanelLateral(constrain);
this.ingresos=new VistaAniadirVisualizar(this,datosIngresos); this.ingresos=new VistaAniadirVisualizar(this,datosIngresos,true);
this.gastos=new VistaAniadirVisualizar(this,datosGastos); this.gastos=new VistaAniadirVisualizar(this,datosGastos,false);
this.panelCentral=new JPanel(); this.panelCentral=new JPanel();
this.pestania=new JTabbedPane(); this.pestania=new JTabbedPane();
constrain.fill=GridBagConstraints.VERTICAL; constrain.fill=GridBagConstraints.VERTICAL;
@ -41,11 +41,12 @@ public class Menu extends JFrame{
this.pestania.addTab("Gastos", gastos); this.pestania.addTab("Gastos", gastos);
getContentPane().add(pestania); getContentPane().add(pestania);
setTitle("Titulo"); setTitle("Titulo");
setSize(new Dimension(230,320)); setSize(new Dimension(420,320));
setDefaultCloseOperation(3); setDefaultCloseOperation(3);
setLocationRelativeTo(null); setLocationRelativeTo(null);
ControladorAniadirVisualizar controlador=new ControladorAniadirVisualizar(this.ingresos); ControladorAniadirVisualizar controlador=new ControladorAniadirVisualizar(this.ingresos);
ControladorAniadirVisualizar controlador2=new ControladorAniadirVisualizar(this.gastos); ControladorAniadirVisualizar controlador2=new ControladorAniadirVisualizar(this.gastos);
ControladorPanelLateral controlador3=new ControladorPanelLateral(this.panel);
/*constrain.fill=GridBagConstraints.HORIZONTAL; /*constrain.fill=GridBagConstraints.HORIZONTAL;
constrain.gridx=1; constrain.gridx=1;
constrain.gridy=0; constrain.gridy=0;

View File

@ -20,8 +20,10 @@ public class VistaAniadirVisualizar extends JPanel{
JPanel cuadro; JPanel cuadro;
JScrollPane panel; JScrollPane panel;
Menu menu; Menu menu;
boolean positivo;
public VistaAniadirVisualizar(Menu menu, Gestion gestion) { public VistaAniadirVisualizar(Menu menu, Gestion gestion,boolean positivo) {
this.positivo=positivo;
this.gestiones=gestion; this.gestiones=gestion;
this.transacciones=new LinkedList<JCheckBox>(); this.transacciones=new LinkedList<JCheckBox>();
this.menu=menu; this.menu=menu;
@ -39,8 +41,8 @@ public class VistaAniadirVisualizar extends JPanel{
this.add(panel); this.add(panel);
} }
public void aniadirElemento(String nombre, int dinero, ControladorAniadirVisualizar controlador) { public void aniadirElemento(String nombre, float dinero, ControladorAniadirVisualizar controlador) {
Transaccion transaccion=new Transaccion(nombre, dinero); Transaccion transaccion=new Transaccion(nombre, dinero,1,this.positivo);
this.gestiones.aniadirGasto(transaccion); this.gestiones.aniadirGasto(transaccion);
JCheckBox check=new JCheckBox(transaccion.toString()); JCheckBox check=new JCheckBox(transaccion.toString());
check.setSelected(true); check.setSelected(true);

View File

@ -1,5 +1,6 @@
package VistaControlador; package VistaControlador;
import java.awt.Dimension;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
import javax.swing.JButton; import javax.swing.JButton;
@ -15,6 +16,7 @@ public class VistaPanelLateral extends JPanel{
protected JButton mostrarEstadisticas; protected JButton mostrarEstadisticas;
VistaPanelLateral(GridBagConstraints constrain){ VistaPanelLateral(GridBagConstraints constrain){
this.setPreferredSize(new Dimension(200,200));
this.total=new JTextArea(); this.total=new JTextArea();
this.gastoEnvio=new JTextArea(); this.gastoEnvio=new JTextArea();
this.elegirMes=new JButton("Elegir mes"); this.elegirMes=new JButton("Elegir mes");