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
PasswordPanel.java
src/main/java/com/rskworld/mathtools/panels/PasswordPanel.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.security.SecureRandom;

public class PasswordPanel extends JPanel {
    private JTextField lengthField, passwordField;
    private JCheckBox upperCheck, lowerCheck, digitCheck, specialCheck;

    public PasswordPanel() {
        setLayout(new BorderLayout(10, 10));
        setBackground(ThemeManager.BACKGROUND);
        setBorder(BorderFactory.createEmptyBorder(40, 40, 40, 40));
        initComponents();
    }

    private void initComponents() {
        JPanel configPanel = new JPanel(new GridLayout(5, 2, 5, 5));
        configPanel.setOpaque(false);

        configPanel.add(new JLabel("Password Length:"));
        lengthField = new JTextField("12");
        configPanel.add(lengthField);

        upperCheck = new JCheckBox("Include Uppercase", true);
        lowerCheck = new JCheckBox("Include Lowercase", true);
        digitCheck = new JCheckBox("Include Digits", true);
        specialCheck = new JCheckBox("Include Special Chars", true);

        configPanel.add(upperCheck);
        configPanel.add(lowerCheck);
        configPanel.add(digitCheck);
        configPanel.add(specialCheck);

        JButton genBtn = new JButton("Generate Password");
        genBtn.addActionListener(e -> generate());
        configPanel.add(genBtn);

        add(configPanel, BorderLayout.NORTH);

        passwordField = new JTextField();
        passwordField.setEditable(false);
        passwordField.setFont(new Font("Monospaced", Font.BOLD, 16));
        passwordField.setHorizontalAlignment(JTextField.CENTER);
        passwordField.setBorder(BorderFactory.createTitledBorder("Generated Result"));
        add(passwordField, BorderLayout.CENTER);

        ThemeManager.applyTheme(this);
    }

    private void generate() {
        try {
            int len = Integer.parseInt(lengthField.getText());
            String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            String lower = "abcdefghijklmnopqrstuvwxyz";
            String digits = "01234567839";
            String special = "!@#$%^&*()-_=+[]{}";
            
            StringBuilder pool = new StringBuilder();
            if (upperCheck.isSelected()) pool.append(upper);
            if (lowerCheck.isSelected()) pool.append(lower);
            if (digitCheck.isSelected()) pool.append(digits);
            if (specialCheck.isSelected()) pool.append(special);

            if (pool.length() == 0) {
                JOptionPane.showMessageDialog(this, "Select at least one option");
                return;
            }

            SecureRandom random = new SecureRandom();
            StringBuilder pass = new StringBuilder();
            for (int i = 0; i < len; i++) {
                pass.append(pool.charAt(random.nextInt(pool.length())));
            }
            passwordField.setText(pass.toString());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Invalid length");
        }
    }
}
91 lines•3.2 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