Generate the following NetBeans IDE
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorApp extends JFrame {
private JTextField firstNumberField;
private JTextField secondNumberField;
private JTextField resultField;
public CalculatorApp() {
setTitle("Calculator App");
setSize(300, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
initComponents();
private void initComponents() {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(7, 2));
JLabel firstNumberLabel = new JLabel("First Number:");
firstNumberField = new JTextField();
JLabel secondNumberLabel = new JLabel("Second Number:");
secondNumberField = new JTextField();
JLabel resultLabel = new JLabel("Result:");
resultField = new JTextField();
JButton calculateSumButton = new JButton("Calculate Sum");
calculateSumButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calculateSum();
});
JButton calculateAverageButton = new JButton("Calculate Average");
calculateAverageButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calculateAverage();
});
JButton calculateMaxButton = new JButton("Calculate Maximum");
calculateMaxButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calculateMaximum();
});
JButton calculateMinButton = new JButton("Calculate Minimum");
calculateMinButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
calculateMinimum();
});
JButton refreshButton = new JButton("Refresh");
refreshButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
refreshFields();
});
JButton closeButton = new JButton("Close");
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
});
panel.add(firstNumberLabel);
panel.add(firstNumberField);
panel.add(secondNumberLabel);
panel.add(secondNumberField);
panel.add(resultLabel);
panel.add(resultField);
panel.add(calculateSumButton);
panel.add(calculateAverageButton);
panel.add(calculateMaxButton);
panel.add(calculateMinButton);
panel.add(refreshButton);
panel.add(closeButton);
add(panel);
}
private void calculateSum() {
try {
double firstNumber = Double.parseDouble(firstNumberField.getText());
double secondNumber = Double.parseDouble(secondNumberField.getText());
double sum = firstNumber + secondNumber;
resultField.setText(String.valueOf(sum));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter valid numbers.");
private void calculateAverage() {
try {
double firstNumber = Double.parseDouble(firstNumberField.getText());
double secondNumber = Double.parseDouble(secondNumberField.getText());
double average = (firstNumber + secondNumber) / 2;
resultField.setText(String.valueOf(average));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter valid numbers.");
private void calculateMaximum() {
try {
double firstNumber = Double.parseDouble(firstNumberField.getText());
double secondNumber = Double.parseDouble(secondNumberField.getText());
double max = Math.max(firstNumber, secondNumber);
resultField.setText(String.valueOf(max));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter valid numbers.");
}
}
private void calculateMinimum() {
try {
double firstNumber = Double.parseDouble(firstNumberField.getText());
double secondNumber = Double.parseDouble(secondNumberField.getText());
double min = Math.min(firstNumber, secondNumber);
resultField.setText(String.valueOf(min));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter valid numbers.");
private void refreshFields() {
firstNumberField.setText("");
secondNumberField.setText("");
resultField.setText("");
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new CalculatorApp().setVisible(true);
});