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/
/Logica/

Binary file not shown.

Binary file not shown.

View File

@ -3,8 +3,8 @@ import java.util.Vector;
public class Gestion{
private Vector<Transaccion> gestiones;
private int suma;
private static int total;
private float suma;
private static float total;
public Gestion() {
this.gestiones=new Vector<Transaccion>();
@ -15,14 +15,18 @@ public class Gestion{
public void aniadirGasto(Transaccion transaccion) {
this.gestiones.add(transaccion);
this.suma+=transaccion.getDinero();
Gestion.total+=transaccion.getDinero();
if(transaccion.isPositivo()) {
Gestion.total+=transaccion.getDinero();
}else {
Gestion.total-=transaccion.getDinero();
}
}
public int getSuma() {
public float getSuma() {
return this.suma;
}
public static int getTotal() {
public static float getTotal() {
return Gestion.total;
}
@ -33,10 +37,18 @@ public class Gestion{
public void alterarVisibilidad(int elemento) {
if(this.gestiones.get(elemento).alterarVisivilidad()) {
this.suma+=this.gestiones.get(elemento).getDinero();
Gestion.total+=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();
}
}else {
this.suma-=this.gestiones.get(elemento).getDinero();
Gestion.total-=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 {
private String nombre;
private int dinero;
private float dinero;
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.dinero=dinero;
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() {
@ -24,7 +36,16 @@ public class Transaccion {
return this.visible;
}
public int getDinero() {
public float getDinero() {
/*if(positivo) {
return this.dinero;
}else {
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 {
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.revalidate();
this.vista.menu.panel.repaint();

View File

@ -2,21 +2,33 @@ package VistaControlador;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
public class ControladorPanelLateral implements ActionListener{
private VistaPanelLateral vista;
public ControladorPanelLateral(VistaPanelLateral vista) {
this.vista=vista;
this.aniadirElementos();
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(this.vista.mostrarEstadisticas.getActionCommand())) {
XYPlot plot=new XYPlot();
JFreeChart chart=new JFreeChart(plot);
XYSeries serie=new XYSeries("Mes");
serie.add(10,1);
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);
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() {
this.vista.mostrarEstadisticas.addActionListener(this);
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());
GridBagConstraints constrain=new GridBagConstraints();
this.panel=new VistaPanelLateral(constrain);
this.ingresos=new VistaAniadirVisualizar(this,datosIngresos);
this.gastos=new VistaAniadirVisualizar(this,datosGastos);
this.ingresos=new VistaAniadirVisualizar(this,datosIngresos,true);
this.gastos=new VistaAniadirVisualizar(this,datosGastos,false);
this.panelCentral=new JPanel();
this.pestania=new JTabbedPane();
constrain.fill=GridBagConstraints.VERTICAL;
@ -41,11 +41,12 @@ public class Menu extends JFrame{
this.pestania.addTab("Gastos", gastos);
getContentPane().add(pestania);
setTitle("Titulo");
setSize(new Dimension(230,320));
setSize(new Dimension(420,320));
setDefaultCloseOperation(3);
setLocationRelativeTo(null);
ControladorAniadirVisualizar controlador=new ControladorAniadirVisualizar(this.ingresos);
ControladorAniadirVisualizar controlador2=new ControladorAniadirVisualizar(this.gastos);
ControladorPanelLateral controlador3=new ControladorPanelLateral(this.panel);
/*constrain.fill=GridBagConstraints.HORIZONTAL;
constrain.gridx=1;
constrain.gridy=0;

View File

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

View File

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