Question: convert the python code below to a java gui with buttons from tkinter import * #python gui to average 4 test and print the test
convert the python code below to a java gui with buttons
from tkinter import *
#python gui to average 4 test and print the test letter grade of that average
#jada mitchell
import tkinter
class TestAvg:
def __init__(self):
# Create the main window.
self.main_window = tkinter.Tk()
# Create the five frames.
self.test1_frame = tkinter.Frame(self.main_window)
self.test2_frame = tkinter.Frame(self.main_window)
self.test3_frame = tkinter.Frame(self.main_window)
self.test4_frame = tkinter.Frame(self.main_window)
self.avg_frame = tkinter.Frame(self.main_window)
self.letter_frame = tkinter.Frame(self.main_window)
self.button_frame = tkinter.Frame(self.main_window)
# Create and pack the widgets for test 1.
self.test1_label = tkinter.Label(self.test1_frame,
text='Enter the score for test 1:')
self.test1_entry = tkinter.Entry(self.test1_frame,
width=10)
self.test1_label.pack(side='left')
self.test1_entry.pack(side='left')
# Create and pack the widgets for test 2.
self.test2_label = tkinter.Label(self.test2_frame,
text='Enter the score for test 2:')
self.test2_entry = tkinter.Entry(self.test2_frame,
width=10)
self.test2_label.pack(side='left')
self.test2_entry.pack(side='left')
# Create and pack the widgets for test 3.
self.test3_label = tkinter.Label(self.test3_frame,
text='Enter the score for test 3:')
self.test3_entry = tkinter.Entry(self.test3_frame,
width=10)
self.test3_label.pack(side='left')
self.test3_entry.pack(side='left')
# Create and pack the widgets for test 4.
self.test4_label = tkinter.Label(self.test4_frame,
text='Enter the score for test 4:')
self.test4_entry = tkinter.Entry(self.test4_frame,
width=10)
self.test4_label.pack(side='left')
self.test4_entry.pack(side='left')
# Create and pack the widgets for the average.
self.result_label = tkinter.Label(self.avg_frame,
text='Average:')
self.avg = tkinter.StringVar() # To update avg_label
self.avg_label = tkinter.Label(self.avg_frame,
textvariable=self.avg)
self.result_label.pack(side='left')
self.avg_label.pack(side='left')
self.result_label = tkinter.Label(self.letter_frame,
text='Letter Grade:')
self.letter= tkinter.StringVar() # To update letter_label
self.lettergrade_label = tkinter.Label(self.letter_frame,
textvariable=self.letter)
self.result_label.pack(side='left')
self.lettergrade_label.pack(side='left')
# Create and pack the button widgets.
self.calc_button = tkinter.Button(self.button_frame,
text='Average',
command=self.calc_avg)
# self.calc_button = tkinter.Button(self.button_frame,
# text='Letter Grade',
# command=self.calc_letterGrade)
self.quit_button = tkinter.Button(self.button_frame,
text='Quit',
command=self.main_window.destroy)
self.calc_button.pack(side='left')
self.quit_button.pack(side='left')
# Pack the frames.
self.test1_frame.pack()
self.test2_frame.pack()
self.test3_frame.pack()
self.test4_frame.pack()
self.avg_frame.pack()
self.button_frame.pack()
self.letter_frame.pack()
# Start the main loop.
tkinter.mainloop()
# The calc_avg method is the callback function for
# the calc_button widget.
def calc_avg(self):
# Get the three test scores and store them
# in variables.
self.test1 = float(self.test1_entry.get())
self.test2 = float(self.test2_entry.get())
self.test3 = float(self.test3_entry.get())
self.test4 = float(self.test3_entry.get())
# Calculate the average.
self.average = (self.test1 + self.test2 +
self.test3 +self.test4) / 4.0
print(self.average)
#see what number falls under which letter grade
if self.average < 60:
self.lettergrade = 'F'
if 59 < self.average < 70:
self.lettergrade = 'D'
if 69 < self.average < 80:
self.lettergrade = 'C'
if 79 < self.average < 90:
self.lettergrade = 'B'
if 89 < self.average < 101:
self.lettergrade = 'A'
# Update the avg_label widget by storing
# the value of self.average in the StringVar
# object referenced by avg.
self.avg.set(self.average)
# self.letter.set(
self.letter.set(self.lettergrade)
# Create an instance of the TestAvg class.
test_avg = TestAvg()
#letter_gr =
#lbl = Label(test_avg, text="Average")
window.mainloop()
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
