help@rskworld.in +91 93305 39277
RSK World
  • Home
  • Development
    • Web Development
    • Mobile Apps
    • Software
    • Games
    • Project
  • Technologies
    • Data Science
    • AI Development
    • Cloud Development
    • Blockchain
    • Cyber Security
    • Dev Tools
    • Testing Tools
  • About
  • Contact

Theme Settings

Color Scheme
Display Options
Font Size
100%
Back to Project
RSK World
java-math-tools
/
src
/
main
/
java
/
com
/
rskworld
/
mathtools
/
panels
RSK World
java-math-tools
Java Math Tools - 15 Mathematical Tools + Scientific Calculator + Geometry + Statistics + Financial Calculators + Swing GUI + Educational Design
panels
  • AgeCalculatorPanel.java2.4 KB
  • BMIPanel.java2.3 KB
  • CalculatorPanel.java4.5 KB
  • ConstantsPanel.java1.6 KB
  • EquationSolverPanel.java3.3 KB
  • FinancialPanel.java3.2 KB
  • GSTPanel.java2.1 KB
  • GeometryPanel.java4 KB
  • HistoryPanel.java1.8 KB
  • MatrixPanel.java4.2 KB
  • NumberSystemPanel.java3 KB
  • PasswordPanel.java3.2 KB
  • PlotterPanel.java3 KB
  • PrimePanel.java3.5 KB
  • StatisticsPanel.java3.5 KB
  • UnitConverterPanel.java5.8 KB
StatisticsPanel.java
src/main/java/com/rskworld/mathtools/panels/StatisticsPanel.java
Raw Download
Find: Go to:
/**
 * Project: Java Basic Math Tools
 * Developer: Molla Samser
 * Designer & Tester: Rima Khatun
 * Website: https://rskworld.in
 * Year: 2026
 */

package com.rskworld.mathtools.panels;

import com.rskworld.mathtools.utils.ThemeManager;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class StatisticsPanel extends JPanel {
    private JTextArea inputArea, outputArea;

    public StatisticsPanel() {
        setLayout(new BorderLayout(10, 10));
        setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        initComponents();
    }

    private void initComponents() {
        JPanel inputPanel = new JPanel(new BorderLayout());
        inputPanel.setBorder(BorderFactory.createTitledBorder("Enter numbers (separated by comma or space)"));
        inputArea = new JTextArea(5, 20);
        inputPanel.add(new JScrollPane(inputArea), BorderLayout.CENTER);
        
        JButton calcBtn = new JButton("Calculate Statistics");
        calcBtn.addActionListener(e -> calculateStats());
        inputPanel.add(calcBtn, BorderLayout.SOUTH);

        add(inputPanel, BorderLayout.NORTH);

        outputArea = new JTextArea();
        outputArea.setEditable(false);
        outputArea.setFont(new Font("Monospaced", Font.PLAIN, 14));
        outputArea.setBorder(BorderFactory.createTitledBorder("Statistical Analysis"));
        add(new JScrollPane(outputArea), BorderLayout.CENTER);
        ThemeManager.applyTheme(this);
    }

    private void calculateStats() {
        try {
            String text = inputArea.getText().replaceAll("[^0-9.\\s,-]", "");
            String[] tokens = text.split("[,\\s]+");
            List<Double> data = new ArrayList<>();
            for (String s : tokens) {
                if (!s.isEmpty()) data.add(Double.parseDouble(s));
            }

            if (data.isEmpty()) {
                outputArea.setText("No data provided.");
                return;
            }

            Collections.sort(data);
            double sum = 0;
            for (double d : data) sum += d;
            double mean = sum / data.size();

            double median;
            int mid = data.size() / 2;
            if (data.size() % 2 == 0) {
                median = (data.get(mid - 1) + data.get(mid)) / 2.0;
            } else {
                median = data.get(mid);
            }

            double sqSum = 0;
            for (double d : data) sqSum += Math.pow(d - mean, 2);
            double variance = sqSum / data.size();
            double stdDev = Math.sqrt(variance);

            StringBuilder sb = new StringBuilder();
            sb.append(String.format("Count: %d\n", data.size()));
            sb.append(String.format("Sorted: %s\n", data.toString()));
            sb.append(String.format("Min: %.2f\n", data.get(0)));
            sb.append(String.format("Max: %.2f\n", data.get(data.size() - 1)));
            sb.append(String.format("Sum: %.2f\n", sum));
            sb.append(String.format("Mean: %.2f\n", mean));
            sb.append(String.format("Median: %.2f\n", median));
            sb.append(String.format("Variance: %.2f\n", variance));
            sb.append(String.format("Std Deviation: %.2f\n", stdDev));

            outputArea.setText(sb.toString());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Error processing data. Check format.");
        }
    }
}
97 lines•3.5 KB
java

About RSK World

Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.

Founder: Molla Samser
Designer & Tester: Rima Khatun

Development

  • Game Development
  • Web Development
  • Mobile Development
  • AI Development
  • Development Tools

Legal

  • Terms & Conditions
  • Privacy Policy
  • Disclaimer

Contact Info

Nutanhat, Mongolkote
Purba Burdwan, West Bengal
India, 713147

+91 93305 39277

hello@rskworld.in
support@rskworld.in

© 2026 RSK World. All rights reserved.

Content used for educational purposes only. View Disclaimer