【问题标题】:Jython jlist text not showing in JFrameJython jlist 文本未在 JFrame 中显示
【发布时间】:2014-12-29 19:25:41
【问题描述】:

我正在编写一个小股票报价应用程序,当我编译代码时,Jlist 中将占用文本空间,但不会出现任何文本。

def loadStockDisplay(self):
    self.display = JPanel()
    self.display.setLayout(BorderLayout())
    self.display.setBackground(Color.decode("#0A0A33"))
    self.display.setBorder(BorderFactory.createMatteBorder(0,3,0,0,Color.decode("#8080E6")))
    self.label = JLabel("Stocks")
    self.label.setForeground(Color.decode("#FCFCFC"))
    self.label.setFont(self.font)
    self.display.add(self.label,BorderLayout.NORTH)
    self.stocks = DefaultListModel();
    self.items = JList(self.stocks)
    self.items.setBackground(Color.decode("#0A0A33"))
    self.items.setForeground(Color.decode("#FCFCFC"))
    self.items.setFont(self.font)
    self.items.setSelectionBackground(Color.decode("#0A0A33"))
    self.items.setSelectionForeground(Color.decode("#FCFCFC"))
    self.display.add(self.items, BorderLayout.CENTER)
    self.frame.add(self.display,BorderLayout.EAST)
    self.updateStocks()

def updateStocks(self):
    companys = ["MSFT","SNDK","GOOGL","NOK","EMC","HPQ","IBM","EBAY","AAPL","AMZN"]
    tempList = []
    for company in companys:
        Quote = web()
        tempList.append(company + " " + str(Quote.getQuote(company)))
    self.stocks.clear()
    for item in tempList:
        self.stocks.addElement(item)

【问题讨论】:

    标签: java python swing jython jlist


    【解决方案1】:

    也许代码中存在问题中尚未提供的问题?你能分享类和主要方法(如果你有这些)吗?从网络上获取报价也可能存在问题。

    如果我添加一些代码以使您的程序运行,列表中包含每个公司的项目(带有虚拟报价):

    from java.awt import BorderLayout, Color
    from javax.swing import BorderFactory, DefaultListModel, JFrame, JLabel, JList, JPanel
    
    class StocksTest:
        def loadStockDisplay(self):
            self.frame = JFrame('Stocks', defaultCloseOperation=JFrame.EXIT_ON_CLOSE, size=(300, 300), locationRelativeTo=None)
            self.display = JPanel()
            self.display.setLayout(BorderLayout())
            self.display.setBackground(Color.decode("#0A0A33"))
            self.display.setBorder(BorderFactory.createMatteBorder(0,3,0,0,Color.decode("#8080E6")))
            self.label = JLabel("Stocks")
            self.label.setForeground(Color.decode("#FCFCFC"))
            self.label.setFont(self.frame.font)
            self.display.add(self.label,BorderLayout.NORTH)
            self.stocks = DefaultListModel();
            self.items = JList(self.stocks)
            self.items.setBackground(Color.decode("#0A0A33"))
            self.items.setForeground(Color.decode("#FCFCFC"))
            self.items.setFont(self.frame.font)
            self.items.setSelectionBackground(Color.decode("#0A0A33"))
            self.items.setSelectionForeground(Color.decode("#FCFCFC"))
            self.display.add(self.items, BorderLayout.CENTER)
            self.frame.add(self.display,BorderLayout.EAST)
            self.frame.setVisible(True)
            self.updateStocks()
    
        def updateStocks(self):
            companys = ["MSFT","SNDK","GOOGL","NOK","EMC","HPQ","IBM","EBAY","AAPL","AMZN"]
            tempList = []
            for company in companys:
                #Quote = web()
                #companyQuote = Quote.getQuote(company)
                companyQuote = len(str(company)) * 314.15
                tempList.append(company + " " + str(companyQuote))
            self.stocks.clear()
            for item in tempList:
                self.stocks.addElement(item)
    
    
    def main():
        StocksTest().loadStockDisplay()
    
    if __name__ == '__main__':
        main()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2015-07-29
      • 2014-03-16
      • 2015-07-25
      • 1970-01-01
      • 2016-06-08
      • 2021-04-02
      相关资源
      最近更新 更多