Skip to content

9 Más JavaFX

Formas

En JavaFX, puedes crear y manipular formas gráficas utilizando las clases proporcionadas en el paquete javafx.scene.shape. Estas formas incluyen rectángulos, círculos, líneas, elipses, polígonos y más.

Puede ser manipuladas como un componente normal. Tienen métodos como setFill(Color color) para modificar el estilo de las formas. También se puede modificar a través de CSS. Veamos un ejemplo, de un círculo:

public class CircleExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        Circle circle = new Circle(150, 100, 50);
        circle.setFill(Color.LIGHTGREEN);
        circle.setStroke(Color.DARKGREEN);
        circle.setStrokeWidth(2);

        Pane pane = new Pane();
        pane.getChildren().add(circle);

        Scene scene = new Scene(pane, 300, 200);
        primaryStage.setTitle("Circle Example");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

Gráficos

En JavaFX, los gráficos (charts) son una manera efectiva de visualizar datos. JavaFX proporciona varias clases para crear diferentes tipos de gráficos, como gráficos de líneas, gráficos de barras, gráficos de sectores, etc. Todos estos gráficos están en el paquete javafx.scene.chart. A continuación, se explica cómo utilizar estos gráficos con ejemplos.

  1. LineChart (Gráfico de líneas)

    public class LineChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            NumberAxis xAxis = new NumberAxis();
            NumberAxis yAxis = new NumberAxis();
            xAxis.setLabel("X Axis");
            yAxis.setLabel("Y Axis");
    
            LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis);
            lineChart.setTitle("Line Chart Example");
    
            XYChart.Series<Number, Number> series = new XYChart.Series<>();
            series.setName("My Data");
            series.getData().add(new XYChart.Data<>(1, 23));
            series.getData().add(new XYChart.Data<>(2, 14));
            series.getData().add(new XYChart.Data<>(3, 15));
            series.getData().add(new XYChart.Data<>(4, 24));
            series.getData().add(new XYChart.Data<>(5, 34));
            series.getData().add(new XYChart.Data<>(6, 36));
            series.getData().add(new XYChart.Data<>(7, 22));
            series.getData().add(new XYChart.Data<>(8, 45));
            series.getData().add(new XYChart.Data<>(9, 43));
            series.getData().add(new XYChart.Data<>(10, 17));
            series.getData().add(new XYChart.Data<>(11, 29));
            series.getData().add(new XYChart.Data<>(12, 25));
    
            lineChart.getData().add(series);
    
            Scene scene = new Scene(lineChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Line Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
  2. BarChart (Gráfico de barras)

    public class BarChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            CategoryAxis xAxis = new CategoryAxis();
            NumberAxis yAxis = new NumberAxis();
            xAxis.setLabel("Category");
            yAxis.setLabel("Value");
    
            BarChart<String, Number> barChart = new BarChart<>(xAxis, yAxis);
            barChart.setTitle("Bar Chart Example");
    
            XYChart.Series<String, Number> series = new XYChart.Series<>();
            series.setName("My Data");
            series.getData().add(new XYChart.Data<>("A", 20));
            series.getData().add(new XYChart.Data<>("B", 15));
            series.getData().add(new XYChart.Data<>("C", 25));
            series.getData().add(new XYChart.Data<>("D", 10));
    
            barChart.getData().add(series);
    
            Scene scene = new Scene(barChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Bar Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
  3. PieChart (Gráfico de sectores)

    public class PieChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            PieChart pieChart = new PieChart();
            pieChart.setTitle("Pie Chart Example");
    
            PieChart.Data slice1 = new PieChart.Data("Category A", 30);
            PieChart.Data slice2 = new PieChart.Data("Category B", 25);
            PieChart.Data slice3 = new PieChart.Data("Category C", 45);
    
            pieChart.getData().addAll(slice1, slice2, slice3);
    
            Scene scene = new Scene(pieChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Pie Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
  4. ScatterChart (Gráfico de dispersión)

    public class ScatterChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            NumberAxis xAxis = new NumberAxis();
            NumberAxis yAxis = new NumberAxis();
            xAxis.setLabel("X Axis");
            yAxis.setLabel("Y Axis");
    
            ScatterChart<Number, Number> scatterChart = new ScatterChart<>(xAxis, yAxis);
            scatterChart.setTitle("Scatter Chart Example");
    
            XYChart.Series<Number, Number> series = new XYChart.Series<>();
            series.setName("My Data");
            series.getData().add(new XYChart.Data<>(1, 23));
            series.getData().add(new XYChart.Data<>(2, 14));
            series.getData().add(new XYChart.Data<>(3, 15));
            series.getData().add(new XYChart.Data<>(4, 24));
            series.getData().add(new XYChart.Data<>(5, 34));
            series.getData().add(new XYChart.Data<>(6, 36));
            series.getData().add(new XYChart.Data<>(7, 22));
            series.getData().add(new XYChart.Data<>(8, 45));
            series.getData().add(new XYChart.Data<>(9, 43));
            series.getData().add(new XYChart.Data<>(10, 17));
            series.getData().add(new XYChart.Data<>(11, 29));
            series.getData().add(new XYChart.Data<>(12, 25));
    
            scatterChart.getData().add(series);
    
            Scene scene = new Scene(scatterChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Scatter Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
  5. AreaChart (Gráfico de área)

    public class AreaChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            NumberAxis xAxis = new NumberAxis();
            NumberAxis yAxis = new NumberAxis();
            xAxis.setLabel("X Axis");
            yAxis.setLabel("Y Axis");
    
            AreaChart<Number, Number> areaChart = new AreaChart<>(xAxis, yAxis);
            areaChart.setTitle("Area Chart Example");
    
            XYChart.Series<Number, Number> series = new XYChart.Series<>();
            series.setName("My Data");
            series.getData().add(new XYChart.Data<>(1, 23));
            series.getData().add(new XYChart.Data<>(2, 14));
            series.getData().add(new XYChart.Data<>(3, 15));
            series.getData().add(new XYChart.Data<>(4, 24));
            series.getData().add(new XYChart.Data<>(5, 34));
            series.getData().add(new XYChart.Data<>(6, 36));
            series.getData().add(new XYChart.Data<>(7, 22));
            series.getData().add(new XYChart.Data<>(8, 45));
            series.getData().add(new XYChart.Data<>(9, 43));
            series.getData().add(new XYChart.Data<>(10, 17));
            series.getData().add(new XYChart.Data<>(11, 29));
            series.getData().add(new XYChart.Data<>(12, 25));
    
            areaChart.getData().add(series);
    
            Scene scene = new Scene(areaChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Area Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    
  6. BubbleChart (Gráfico de burbujas)

    public class BubbleChartExample extends Application {
        @Override
        public void start(Stage primaryStage) {
            NumberAxis xAxis = new NumberAxis();
            NumberAxis yAxis = new NumberAxis();
            xAxis.setLabel("X Axis");
            yAxis.setLabel("Y Axis");
    
            BubbleChart<Number, Number> bubbleChart = new BubbleChart<>(xAxis, yAxis);
            bubbleChart.setTitle("Bubble Chart Example");
    
            XYChart.Series<Number, Number> series = new XYChart.Series<>();
            series.setName("My Data");
            series.getData().add(new XYChart.Data<>(5, 5, 1));
            series.getData().add(new XYChart.Data<>(10, 10, 4));
            series.getData().add(new XYChart.Data<>(15, 15, 9));
            series.getData().add(new XYChart.Data<>(20, 20, 16));
            series.getData().add(new XYChart.Data<>(25, 25, 25));
    
            bubbleChart.getData().add(series);
    
            Scene scene = new Scene(bubbleChart, 800, 600);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Bubble Chart Example");
            primaryStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }