Advertisement
Zuhairy_Harry

Lab Test 2 DAD

Jun 20th, 2024
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.BufferedReader;
  6. import java.io.FileReader;
  7. import java.io.IOException;
  8.  
  9. public class FileProcessingDemo {
  10.     public static void main(String[] args) {
  11.         // Create the frame
  12.         JFrame frame = new JFrame("File Processing");
  13.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.         frame.setSize(500, 300);
  15.         frame.setLayout(new FlowLayout());
  16.  
  17.         // Create the "Pick File" button
  18.         JButton pickFileButton = new JButton("Pick File");
  19.         JTextField filePathField = new JTextField(30);
  20.         filePathField.setEditable(false);
  21.        
  22.         // Create the "Start Processing" button
  23.         JButton startProcessingButton = new JButton("Start Processing");
  24.  
  25.         // Create the text field to display the key generation result
  26.         JTextField keyGenerateField = new JTextField(30);
  27.         keyGenerateField.setEditable(false);
  28.  
  29.         // Add action listener to the "Pick File" button
  30.         pickFileButton.addActionListener(new ActionListener() {
  31.             @Override
  32.             public void actionPerformed(ActionEvent e) {
  33.                 // Create a file chooser
  34.                 JFileChooser fileChooser = new JFileChooser();
  35.  
  36.                 // Show the open dialog
  37.                 int result = fileChooser.showOpenDialog(null);
  38.  
  39.                 // Check if a file was selected
  40.                 if (result == JFileChooser.APPROVE_OPTION) {
  41.                     // Get the selected file
  42.                     String selectedFilePath = fileChooser.getSelectedFile().getAbsolutePath();
  43.                     filePathField.setText(selectedFilePath);
  44.                 } else {
  45.                     // Display a message if no file was selected
  46.                     JOptionPane.showMessageDialog(frame, "No file selected");
  47.                 }
  48.             }
  49.         });
  50.  
  51.         // Add action listener to the "Start Processing" button
  52.         startProcessingButton.addActionListener(new ActionListener() {
  53.             @Override
  54.             public void actionPerformed(ActionEvent e) {
  55.                 String filePath = filePathField.getText();
  56.                 if (!filePath.isEmpty()) {
  57.                     // Create a new thread to process the file
  58.                     new Thread(new Runnable() {
  59.                         @Override
  60.                         public void run() {
  61.                             try {
  62.                                 // Use FileReader and BufferedReader to read the file
  63.                                 FileReader fileReader = new FileReader(filePath);
  64.                                 BufferedReader bufferedReader = new BufferedReader(fileReader);
  65.  
  66.                                 String line;
  67.                                 int passwordCount = 0;
  68.                                 int bitp3123Count = 0;
  69.  
  70.                                 // Read the file line by line
  71.                                 while ((line = bufferedReader.readLine()) != null) {
  72.                                     if (line.contains("password")) {
  73.                                         passwordCount++;
  74.                                     }
  75.                                     if (line.contains("bitp3123")) {
  76.                                         bitp3123Count++;
  77.                                     }
  78.                                 }
  79.  
  80.                                 bufferedReader.close();
  81.  
  82.                                 // Calculate the result
  83.                                 int result = passwordCount * bitp3123Count;
  84.  
  85.                                 // Update the keyGenerateField with the result
  86.                                 SwingUtilities.invokeLater(new Runnable() {
  87.                                     @Override
  88.                                     public void run() {
  89.                                         keyGenerateField.setText(String.valueOf(result));
  90.                                     }
  91.                                 });
  92.  
  93.                             } catch (IOException ex) {
  94.                                 ex.printStackTrace();
  95.                                 JOptionPane.showMessageDialog(frame, "Error reading file: " + ex.getMessage());
  96.                             }
  97.                         }
  98.                     }).start();
  99.                 } else {
  100.                     JOptionPane.showMessageDialog(frame, "Please select a file first.");
  101.                 }
  102.             }
  103.         });
  104.  
  105.         // Add components to the frame
  106.         frame.add(pickFileButton);
  107.         frame.add(filePathField);
  108.         frame.add(startProcessingButton);
  109.         frame.add(keyGenerateField);
  110.  
  111.         // Make the frame visible
  112.         frame.setVisible(true);
  113.     }
  114. }
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement