Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

Question
100%

How could one go about seperating the logic and User Interface in the below Java program? What would that look like?

Thank you!

Source Code:

package implementingRecursion;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

 

public class RecursiveProductCalculator extends JFrame {

private JTextField[] numberFields;

private JButton calculateButton;

private JLabel resultLabel;

public RecursiveProductCalculator() {

setTitle("Recursive Product Calculator");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new GridLayout(7, 1));

 

numberFields = new JTextField[5];

for (inti = 0; i < 5; i++) {

JPanel panel = new JPanel();

panel.setLayout(new FlowLayout());

JLabel label = new JLabel("Number " + (i + 1) + ": ");

numberFields[i] = new JTextField(10);

panel.add(label);

panel.add(numberFields[i]);

add(panel);

}

calculateButton = new JButton("Calculate");

calculateButton.addActionListener(new ActionListener() {

@Override

publicvoid actionPerformed(ActionEvent e) {

try {

int[] numbers = newint[5];

 

for (inti = 0; i < 5; i++) {

// Perform validation for each input field

if (!numberFields[i].getText().matches("-?\\d+")) {

JOptionPane.showMessageDialog(null, "Invalid input in Number " + (i + 1) + ".");

return;

}

numbers[i] = Integer.parseInt(numberFields[i].getText());

}

intproduct = calculateProduct(numbers, 0);

resultLabel.setText("Product: " + product);

} catch (NumberFormatException ex) {

JOptionPane.showMessageDialog(null, "Invalid number format. Please enter valid integers.");

}

}

});

add(calculateButton);

 

resultLabel = new JLabel("Product: ");

add(resultLabel);

 

pack();

setVisible(true);

}

 

privateint calculateProduct(int[] numbers, intindex) {

if (index == numbers.length - 1) {

returnnumbers[index];

} else {

returnnumbers[index] * calculateProduct(numbers, index + 1);

}

}

 

publicstaticvoid main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

@Override

publicvoid run() {

new RecursiveProductCalculator();

}

});

}

}

Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education