From 8c4f568a4db487985cb9780010cfac6cc0854858 Mon Sep 17 00:00:00 2001 From: "edgar.juarez" Date: Wed, 20 Mar 2024 08:40:23 -0600 Subject: [PATCH] Implementacion de codigo logico --- .../java/com/mycompany/presentador/App.java | 49 +++++++++-- .../presentador/ConstructorGraficaBarras.java | 55 ++++++++++--- .../com/mycompany/presentador/Contenido.java | 38 +++++++-- .../mycompany/presentador/Diapositiva.java | 11 +++ .../presentador/ModeloDiapositiva.java | 28 +++++-- .../mycompany/presentador/NC_CuadroTexto.java | 22 ++++- .../presentador/NC_GraficaBarras.java | 23 +++--- .../com/mycompany/presentador/NC_Texto.java | 28 ++++++- .../presentador/Nc_GraficaBarras.java | 13 --- .../mycompany/presentador/Presentacion.java | 81 +++++++++++++++++++ .../com/mycompany/presentador/Titulo.java | 39 ++++++++- 11 files changed, 323 insertions(+), 64 deletions(-) create mode 100644 presentador/src/main/java/com/mycompany/presentador/Diapositiva.java delete mode 100644 presentador/src/main/java/com/mycompany/presentador/Nc_GraficaBarras.java create mode 100644 presentador/src/main/java/com/mycompany/presentador/Presentacion.java diff --git a/presentador/src/main/java/com/mycompany/presentador/App.java b/presentador/src/main/java/com/mycompany/presentador/App.java index 4233276..2471fdb 100644 --- a/presentador/src/main/java/com/mycompany/presentador/App.java +++ b/presentador/src/main/java/com/mycompany/presentador/App.java @@ -5,6 +5,12 @@ import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.layout.StackPane; +import javafx.stage.Stage; + /** @@ -14,13 +20,44 @@ public class App extends Application { @Override public void start(Stage stage) { - var javaVersion = SystemInfo.javaVersion(); - var javafxVersion = SystemInfo.javafxVersion(); + // Diapositiva d1 + Titulo t1 = new Titulo("Titulo 1", "Subtitulo 1"); + NC_CuadroTexto ct = new NC_CuadroTexto(); + ct.agregaTexto("Sentencia 1"); + ct.agregaTexto("Sentencia 2"); + ct.agregaTexto("Sentencia 3"); + ct.agregaTexto("Sentencia 4"); + Contenido c1 = new Contenido(); + c1.agregaElemento(ct); + ModeloDiapositiva md1 = new ModeloDiapositiva(t1, c1); + Diapositiva d1 = new Diapositiva(md1); - var label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); - var scene = new Scene(new StackPane(label), 640, 480); - stage.setScene(scene); - stage.show(); + // Diapositiva d2 + ConstructorGraficaBarras cgb = new ConstructorGraficaBarras("Ventas anuales de pasteles", "Año", "Ventas"); + cgb.agregaSerie("2016"); + cgb.agregaBarraSerie("2016", "Milky", 5200); + cgb.agregaBarraSerie("2016", "Zanahoria", 2200); + cgb.agregaBarraSerie("2016", "Mostachón", 4800); + + cgb.agregaSerie("2017"); + cgb.agregaBarraSerie("2017", "Milky", 5400); + cgb.agregaBarraSerie("2017", "Zanahoria", 2500); + cgb.agregaBarraSerie("2017", "Mostachón", 4700); + + Contenido c2 = new Contenido(); + c2.agregaElemento(cgb.generaGraficaBarras()); + + Titulo t2 = new Titulo("Titulo 2", "Subtitulo 2"); + + ModeloDiapositiva md2 = new ModeloDiapositiva(t2, c2); + Diapositiva d2 = new Diapositiva(md2); + + + Presentacion p = new Presentacion(stage); + + p.agregarDiapositiva(d1); + p.agregarDiapositiva(d2); + p.mostrar(); } public static void main(String[] args) { diff --git a/presentador/src/main/java/com/mycompany/presentador/ConstructorGraficaBarras.java b/presentador/src/main/java/com/mycompany/presentador/ConstructorGraficaBarras.java index b5ecccc..afc2428 100644 --- a/presentador/src/main/java/com/mycompany/presentador/ConstructorGraficaBarras.java +++ b/presentador/src/main/java/com/mycompany/presentador/ConstructorGraficaBarras.java @@ -4,19 +4,52 @@ */ package com.mycompany.presentador; -import javafx.application.Application; -import javafx.event.ActionEvent; -import javafx.event.EventHandler; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.layout.StackPane; -import javafx.stage.Stage; +import java.util.HashMap; +import java.util.Map; +import javafx.scene.chart.CategoryAxis; +import javafx.scene.chart.NumberAxis; +import javafx.scene.chart.XYChart; + /** * * @author Jossellin */ -public class ConstructorGraficaBarras { - - //sin funcionalidad - -} +public class ConstructorGraficaBarras { + private NC_GraficaBarras gb; + private Map series; + + public ConstructorGraficaBarras(String Titulo, String ejeX, String ejeY) { + // Da nombre al ejeX + CategoryAxis xAxis = new CategoryAxis(); + xAxis.setLabel(ejeX); + // Da nombre al ejeY + NumberAxis yAxis = new NumberAxis(); + yAxis.setLabel(ejeY); + gb = new NC_GraficaBarras(xAxis, yAxis); + gb.setTitle(Titulo); + gb.setMinSize(800, 500); + series = new HashMap<>(); + } + + public void agregaSerie(String nombre) { + XYChart.Series serie = new XYChart.Series(); + serie.setName(nombre); + series.put(nombre, serie); + } + + public void agregaBarraSerie(String nombreSerie, + String nombreBarra, + double valor) { + XYChart.Series serie = series.get(nombreSerie); + serie.getData().add(new XYChart.Data(nombreBarra, valor)); + } + + public NC_GraficaBarras generaGraficaBarras() { + for(XYChart.Series serie : series.values()) { + gb.getData().add(serie); + } + return gb; + } + +} \ No newline at end of file diff --git a/presentador/src/main/java/com/mycompany/presentador/Contenido.java b/presentador/src/main/java/com/mycompany/presentador/Contenido.java index c473248..087a864 100644 --- a/presentador/src/main/java/com/mycompany/presentador/Contenido.java +++ b/presentador/src/main/java/com/mycompany/presentador/Contenido.java @@ -3,11 +3,35 @@ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.presentador; +import javafx.collections.ObservableList; +import javafx.scene.Node; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.HBox; +import javafx.scene.paint.Color; +import javafx.scene.shape.Circle; -/** - * - * @author Omar López - */ -public class Contenido { - -} + +public class Contenido extends AnchorPane { + private ObservableList contenidos; + + public Contenido() { + super(); + this.setMaxSize(800, 500); + this.setStyle("-fx-background-color: #FFFFFF;"); + this.setLayoutX(0); + this.setLayoutY(200); + contenidos = this.getChildren(); + } + + public void agregaElemento(NC_Texto t) { + this.contenidos.add(t); + } + public void agregaElemento(NC_CuadroTexto ct) { + this.contenidos.add(ct); + } + + public void agregaElemento(NC_GraficaBarras gb) { + this.contenidos.add(gb); + } + +} \ No newline at end of file diff --git a/presentador/src/main/java/com/mycompany/presentador/Diapositiva.java b/presentador/src/main/java/com/mycompany/presentador/Diapositiva.java new file mode 100644 index 0000000..5bff59b --- /dev/null +++ b/presentador/src/main/java/com/mycompany/presentador/Diapositiva.java @@ -0,0 +1,11 @@ +package com.mycompany.presentador; + +import javafx.scene.Parent; +import javafx.scene.Scene; +public class Diapositiva extends Scene{ + + public Diapositiva(ModeloDiapositiva md) { + super(md,800,600); + } + +} diff --git a/presentador/src/main/java/com/mycompany/presentador/ModeloDiapositiva.java b/presentador/src/main/java/com/mycompany/presentador/ModeloDiapositiva.java index f09df06..a35977f 100644 --- a/presentador/src/main/java/com/mycompany/presentador/ModeloDiapositiva.java +++ b/presentador/src/main/java/com/mycompany/presentador/ModeloDiapositiva.java @@ -4,10 +4,26 @@ */ package com.mycompany.presentador; -/** - * - * @author edgar - */ -public class ModeloDiapositiva { - +import javafx.scene.Group; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.scene.text.Font; +import javafx.scene.text.Text; +import javafx.scene.text.TextAlignment; +import javafx.scene.text.TextFlow; +public class ModeloDiapositiva extends VBox{ + private Titulo areaTitulo; + private Contenido areaContenido; + + public ModeloDiapositiva(Titulo t, Contenido c) { + areaTitulo = t; + areaContenido = c; + this.getChildren().add(areaTitulo); + this.getChildren().add(areaContenido); + } + + + + + } diff --git a/presentador/src/main/java/com/mycompany/presentador/NC_CuadroTexto.java b/presentador/src/main/java/com/mycompany/presentador/NC_CuadroTexto.java index efa7683..4cd6fea 100644 --- a/presentador/src/main/java/com/mycompany/presentador/NC_CuadroTexto.java +++ b/presentador/src/main/java/com/mycompany/presentador/NC_CuadroTexto.java @@ -8,6 +8,22 @@ package com.mycompany.presentador; * * @author Roberto */ -public class NC_CuadroTexto { - -} + +import javafx.scene.paint.Color; +import javafx.scene.text.TextFlow; +public class NC_CuadroTexto extends TextFlow { + + public NC_CuadroTexto() { + super(); + this.setMinSize(800, 600); + this.setLineSpacing(30.0); + } + + public void agregaTexto(String punto) { + NC_Texto t = new NC_Texto(); + t.setTexto("\n\t* " + punto, 30, Color.BLACK); + this.getChildren().add(t); + } + + +} \ No newline at end of file diff --git a/presentador/src/main/java/com/mycompany/presentador/NC_GraficaBarras.java b/presentador/src/main/java/com/mycompany/presentador/NC_GraficaBarras.java index 29844a2..2162948 100644 --- a/presentador/src/main/java/com/mycompany/presentador/NC_GraficaBarras.java +++ b/presentador/src/main/java/com/mycompany/presentador/NC_GraficaBarras.java @@ -1,22 +1,21 @@ /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMain.java to edit this template + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.mycompany.presentador; -import javafx.application.Application; -import javafx.event.ActionEvent; -import javafx.event.EventHandler; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.layout.StackPane; -import javafx.stage.Stage; - /** * * @author Jossellin */ -public class NC_GraficaBarras { - - //sin funcionalidad - + +import javafx.scene.chart.Axis; +import javafx.scene.chart.BarChart; + +public class NC_GraficaBarras extends BarChart { + + public NC_GraficaBarras(Axis xAxis, Axis yAxis) { + super(xAxis, yAxis); + } + } diff --git a/presentador/src/main/java/com/mycompany/presentador/NC_Texto.java b/presentador/src/main/java/com/mycompany/presentador/NC_Texto.java index 0bf5ea1..8353f6c 100644 --- a/presentador/src/main/java/com/mycompany/presentador/NC_Texto.java +++ b/presentador/src/main/java/com/mycompany/presentador/NC_Texto.java @@ -8,6 +8,28 @@ package com.mycompany.presentador; * * @author Roberto */ -public class NC_Texto { - -} + +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; +import javafx.scene.text.Text; + + +public class NC_Texto extends Text { + + public NC_Texto() { + super(); + } + + public void setTexto(String t, int tam, Color c) { + this.setFont(Font.font("Arial", FontWeight.NORMAL, tam)); + this.setFill(c); + this.setText(t); + } + + public void setPosicion(int x, int y) { + this.setLayoutX(x); + this.setLayoutY(y); + } + +} \ No newline at end of file diff --git a/presentador/src/main/java/com/mycompany/presentador/Nc_GraficaBarras.java b/presentador/src/main/java/com/mycompany/presentador/Nc_GraficaBarras.java deleted file mode 100644 index 2437d56..0000000 --- a/presentador/src/main/java/com/mycompany/presentador/Nc_GraficaBarras.java +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template - */ -package com.mycompany.presentador; - -/** - * - * @author Jossellin - */ -public class Nc_GraficaBarras { - -} diff --git a/presentador/src/main/java/com/mycompany/presentador/Presentacion.java b/presentador/src/main/java/com/mycompany/presentador/Presentacion.java new file mode 100644 index 0000000..5deeea7 --- /dev/null +++ b/presentador/src/main/java/com/mycompany/presentador/Presentacion.java @@ -0,0 +1,81 @@ +package com.mycompany.presentador; + +import java.util.ArrayList; +import java.util.List; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +public class Presentacion { + private Stage controlDiapositivas; + private Stage ventanaDiapositivas; + private List diapositivas; + private int diapositivaActual; + + public Presentacion(Stage primaryStage) { + controlDiapositivas = primaryStage; + ventanaDiapositivas = new Stage(); + diapositivas = new ArrayList<>(); + diapositivaActual = 0; + Button btnAtras = new Button(""); + btnAtras.setOnAction( + event -> { + if(diapositivaActual > 0) { + diapositivaActual --; + ventanaDiapositivas.setScene(diapositivas.get(diapositivaActual)); + } + } + ); + + + Button btnAdelante = new Button(""); + btnAdelante.setOnAction( + event -> { + int limiteSuperior = diapositivas.size() - 1; + if(diapositivaActual < limiteSuperior) { + diapositivaActual++; + ventanaDiapositivas.setScene(diapositivas.get(diapositivaActual)); + } + } + ); + + Button btnDetener = new Button(""); + btnDetener.setOnAction( + event -> { + System.exit(0); + } + ); + + primaryStage.setOnCloseRequest( + event -> System.exit(0) + ); + + HBox hboxPane = new HBox(btnAtras, btnDetener, btnAdelante); + hboxPane.setSpacing(20); + Scene control = new Scene(hboxPane); + controlDiapositivas.setTitle("Presentador FX"); + controlDiapositivas.setResizable(false); + controlDiapositivas.setScene(control); + } + + public void mostrar() { + controlDiapositivas.setAlwaysOnTop(true); + controlDiapositivas.show(); + if(this.diapositivas.size()>0) { + ventanaDiapositivas.setScene(diapositivas.get(0)); + ventanaDiapositivas.show(); + } + + + } + + + public void agregarDiapositiva(Diapositiva diapositiva) { + diapositivas.add(diapositiva); + } + +} \ No newline at end of file diff --git a/presentador/src/main/java/com/mycompany/presentador/Titulo.java b/presentador/src/main/java/com/mycompany/presentador/Titulo.java index 5540056..4161d32 100644 --- a/presentador/src/main/java/com/mycompany/presentador/Titulo.java +++ b/presentador/src/main/java/com/mycompany/presentador/Titulo.java @@ -8,7 +8,40 @@ package com.mycompany.presentador; * * @author Omar López */ -public class Titulo { - //Comentario - + +import javafx.scene.Group; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.FontWeight; +import javafx.scene.text.Text; +import javafx.scene.text.TextAlignment; +import javafx.scene.text.TextFlow; + +public class Titulo extends TextFlow { + private NC_Texto tTitulo; + private NC_Texto tSubtitulo; + + public Titulo() { + super(); + this.setMinSize(800, 100); + tTitulo= new NC_Texto(); + tSubtitulo = new NC_Texto(); + this.getChildren().add(tTitulo); + this.getChildren().add(tSubtitulo); + this.setTextAlignment(TextAlignment.CENTER); + this.setStyle("-fx-background-color: #800000;"); + } + + public Titulo(String titulo, String subtitulo) { + this(); + this.setTitulos(titulo, subtitulo); + } + + public void setTitulos(String titulo, String subtitulo) { + tTitulo.setTexto(titulo, 32, Color.WHITE); + tSubtitulo.setTexto("\n"+subtitulo, 28, Color.WHITE); + + } + } +