我遇到了一个问题,我需要从JTextField获取一个文本,然后按键盘上的Enter键将其添加到JList中,并且可以通过按住Alt键单击列表从列表中删除所选项目。
我现在拥有的东西
# Imports
from tkinter import *
from tkinter import messagebox
import sys, datetime
class Window(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
self.master.title("SPL - " + str(datetime.date.today()))
self.configure(background="#e7e7e7")
self.pack(fill=BOTH, expand=1)
# Menu -> Quit, Open Log
menu = Menu(self.master)
self.master.config(menu=menu)
file = Menu(menu)
file.add_command(label="Open Log")
file.add_command(label="Quit", command=self.client_exit)
menu.add_cascade(label="File", menu=file)
# Window Items
# Office Drop Down
OFFICES = [
"County Building",
"Adult Probation",
"Building & Zoning",
"Circuit Court",
" - CC. Family Division",
" - CC. Friend of the Court",
" - CC. Juvenile Division",
"Clerk",
"Commissioners",
"Computer Infomration Systems",
"Corporation Counsel",
"District Court",
" - DC. Community Corrections",
" - DC. Magistrate Office",
" - DC. Probation Office",
"Economic Development Corp.",
"Equalization",
"Maintenance",
"Probate Court",
"Prosecuting Attorney",
"Public Guardian",
"Register of Deeds",
"Sheriff Department",
" - SD. Booking",
" - SD. Kitchen",
" - SD. Records",
" - SD. Squadroom",
"Social Security",
"Tax Mapping/GIS",
"Treasurer",
"Veteran's"
]
officeLabel = Label(self, text="Office:", fg="#000000", bg="#e7e7e7", font="Verdana 10")
officeLabel.place(x=5,y=5)
officeOptionVar = StringVar()
officeOptionVar.set(OFFICES[0]) # Default Value
officeOption = OptionMenu(self, officeOptionVar, *OFFICES)
officeOption.place(x=5,y=28,width=310)
# Note
noteLabel = Label(self, text="Note:", fg="#000000", bg="#e7e7e7", font="Verdana 10")
noteLabel.place(x=5,y=58)
noteText = Text()
noteText.place(x=5, y=81, width=310, height=225)
# Save Button
saveButton = Button(self, text='Save', command=self.saveButtonCommand)
saveButton.place(x=5, y=312, width=310, height=50)
def client_exit(self):
exit()
def saveButtonCommand(self):
office = officeOptionVar.get()
note = noteText.get("1.0","end-1c")
messagebox.showinfo(title="Test", message=note)
root = Tk()
root.resizable(0,0)
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
geo_width = 320
geo_height = 370
geo_offset_w = int((screen_width/2)-(geo_width/2))
root.geometry(str(geo_width) + "x" + str(geo_height) + "+" + str(geo_offset_w) + "+200")
app = Window(root)
root.mainloop()
它只显示空框架。
我会感激任何帮助。
答案 0 :(得分:0)
您从未将任何组件添加到JFrame。这就是为什么它是空的。
答案 1 :(得分:0)
这种方式有效。
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new BorderLayout());
inputPanel.add(new JScrollPane(list));
inputPanel.add(jText, BorderLayout.PAGE_END);
getContentPane().add(inputPanel);