Jython中的Swing应用程序无法正确呈现文本

2024-09-28 22:05:54 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我在我的应用程序上键入文本时,它都不会正确呈现。此图显示了部分文本显示不正确的原因。我尝试将frame设置为pack,或者在frame类中设置为visible,但是得到了相同的结果?有人能解释为什么会这样吗?你知道吗

Example of problem

代码:

class Frame(JFrame):
    def __init__(self):
        self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
        self.setSize(800,600)
        self.setTitle("Startup Error Check")
        self.setLayout(BorderLayout())

        #West Layout (ServerList)
        self.panel_serverlist = JPanel()
        self.panel_serverlist.setLayout(BorderLayout())
        self.panel_serverlist.setPreferredSize(Dimension(100, self.getHeight()))
        self.border_serverlist = BorderFactory.createTitledBorder("Server list")
        self.border_serverlist.setTitleJustification(TitledBorder.CENTER)
        self.panel_serverlist.setBorder(self.border_serverlist)
        self.textarea_serverlist = JTextArea()
        self.scroll_serverlist = JScrollPane(self.textarea_serverlist)
        self.panel_serverlist.add(self.scroll_serverlist, BorderLayout.CENTER)


        #Center Layout
        self.panel_results = JPanel()
        self.panel_results.setLayout(BorderLayout())
        self.border_results = BorderFactory.createTitledBorder("Results")
        self.border_results.setTitleJustification(TitledBorder.CENTER)
        self.panel_results.setBorder(self.border_results)
        self.textarea_results = JTextArea()
        self.textarea_results.setEditable(False)
        self.textarea_results.setBackground(Color.WHITE);
        self.scroll_results = JScrollPane(self.textarea_results)
        self.panel_results.add(self.scroll_results, BorderLayout.CENTER)


        #North Layout
        self.panel_search = JPanel()
        self.panel_search.setLayout(BorderLayout())
        self.panel_search.setPreferredSize(Dimension(self.getWidth(), 100))
        self.border_search = BorderFactory.createTitledBorder("Search")
        self.border_search.setTitleJustification(TitledBorder.CENTER)
        self.panel_search.setBorder(self.border_search)
        self.textarea_search = JTextArea()
        self.scroll_search = JScrollPane(self.textarea_search)
        self.panel_search.add(self.scroll_search, BorderLayout.CENTER)


        self.add(self.panel_search, BorderLayout.NORTH)
        self.add(self.panel_serverlist, BorderLayout.WEST)
        self.add(self.panel_results, BorderLayout.CENTER)


#Launcher  
if __name__ == '__main__':
    frame = Frame()
    frame.visible = True

Tags: selfaddsearchframeresultscenterscrolllayout