Ruby/TkでFrameを利用するサンプル

rubyコード:
require ‘tk’
top=TkRoot.new{title “ショッピング詳細”}
fname_label=TkLabel.new(top){
text “First Name”
place(‘relx’=>0.0,’rely’=>0.1)
}
fname_entry=TkEntry.new(top){
place(‘relx’=>0.1,’rely’=>0.1)
}
lname_label=TkLabel.new(top){
text “Last Name”
place(‘relx’=>0.0,’rely’=>0.2)
}
lname_entry=TkEntry.new(top){
place(‘relx’=>0.1,’rely’=>0.2)
}
age_label=TkLabel.new(top){
text “Age”
place(‘relx’=>0.0,’rely’=>0.3)
}
age_entry=TkEntry.new(top){
place(‘relx’=>0.1,’rely’=>0.3)
}
gender_label=TkLabel.new(top){
text “Gender : ”
place(‘relx’=>0.0,’rely’=>0.4)
}
radioVar=TkVariable.new
r1 = TkRadioButton.new(top){
text “Male”
variable radioVar

value 1
place(‘relx’=>0.1,’rely’=>0.4)
}
r2 = TkRadioButton.new(top){
text “Female”
variable radioVar
value 2
place(‘relx’=>0.2,’rely’=>0.4)
}
list = TkListbox.new(top){
place(‘relx’=>0.8,’rely’=>0.1)
}
list.insert(1,” Python”)
list.insert(2,” Perl”)
list.insert(3,” C”)
list.insert(4,” PHP”)
list.insert(5,” JSP”)
list.insert(6,” Ruby”)
submit=TkButton.new(top){
text “SUBMIT”
command proc {
val=list.curselection()
sel = list.get(val)
Tk.messageBox(‘message’=>” The book name chosen is #{sel} “)
}
place(‘relx’=>0.3,’rely’=>0.8)
}
Tk.mainloop