0% found this document useful (0 votes)
15 views3 pages

Średnia GUI Na Dwa Okienka

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views3 pages

Średnia GUI Na Dwa Okienka

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
You are on page 1/ 3

package FirstSteps;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AvarageNote_GUI_2Windows
{
public static void main(String[] args)
{
new StartWindow();
}
}
class StartWindow
{
private JTextField numOfNotesText;
private JButton submitButton, exitButton;
private SubmitButtonHandler submitHandler;
private ExitButtonHandler exitHandler;
public StartWindow()
{
JFrame frame = new JFrame("Input Number of Grades");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout(null);
JLabel label = new JLabel("Number of grades:");
label.setBounds(10, 25, 150, 25);
panel.add(label);
numOfNotesText = new JTextField(20);
numOfNotesText.setBounds(150, 25, 50, 25);
panel.add(numOfNotesText);
submitButton = new JButton("Submit");
submitButton.setBounds(10, 70, 100, 25);
submitHandler = new SubmitButtonHandler();
submitButton.addActionListener(submitHandler);
panel.add(submitButton);
exitButton = new JButton("Exit");
exitButton.setBounds(120, 70, 80, 25);
exitHandler = new ExitButtonHandler();
exitButton.addActionListener(exitHandler);
panel.add(exitButton);
frame.setVisible(true);
}
class SubmitButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
int numOfNotes = Integer.parseInt(numOfNotesText.getText());
if (numOfNotes > 0) {
new GradesWindow(numOfNotes);
}
else
{
JOptionPane.showMessageDialog(null, "Enter a valid number of grades.");
}
}
catch (NumberFormatException ex)
{
JOptionPane.showMessageDialog(null, "Please enter a valid integer.");
}
}
}
class ExitButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
}
class GradesWindow
{
private JTextField[] noteFields;
private JTextField aveText;
private JButton calcButton, exitButton;
private CalculateButtonHandler calcHandler;
private ExitButtonHandler exitHandler;
public GradesWindow(int numOfNotes)
{
JFrame frame = new JFrame("Calculate Average");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLayout(null);
noteFields = new JTextField[numOfNotes];
for (int i = 0; i < numOfNotes; i++)
{
JLabel gradeLabel = new JLabel("Note " + (i + 1) + ":");
gradeLabel.setBounds(10, 25 + (i * 35), 100, 25);
panel.add(gradeLabel);
noteFields[i] = new JTextField(20);
noteFields[i].setBounds(120, 25 + (i * 35), 100, 25);
panel.add(noteFields[i]);
}
calcButton = new JButton("Calculate");
calcButton.setBounds(10, 35 * numOfNotes + 30, 100, 25);
calcHandler = new CalculateButtonHandler();
calcButton.addActionListener(calcHandler);
panel.add(calcButton);
exitButton = new JButton("Exit");
exitButton.setBounds(120, 35 * numOfNotes + 30, 80, 25);
exitHandler = new ExitButtonHandler();
exitButton.addActionListener(exitHandler);
panel.add(exitButton);
aveText = new JTextField(20);
aveText.setBounds(120, 35 * numOfNotes + 70, 100, 25);
panel.add(aveText);
JLabel aveLabel = new JLabel("Average:");
aveLabel.setBounds(10, 35 * numOfNotes + 70, 100, 25);
panel.add(aveLabel);
frame.setVisible(true);
}
class CalculateButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
double sum = 0;
for (JTextField notesField : noteFields)
{
sum += Double.parseDouble(notesField.getText());
}
double average = sum / noteFields.length;
aveText.setText(String.format("%.2f", average));
}
catch (NumberFormatException ex)
{
JOptionPane.showMessageDialog(null, "Please enter valid grades.");
}
}
}

class ExitButtonHandler implements ActionListener


{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
}

You might also like