From: <ast...@gm...> - 2007-04-03 14:02:25
|
Hello all, >From what little knowledge that I have, if I write a class that inherits from other classes, it'd be something like: class sub_class(main_class1, main_class2): Based on http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html, how do I do "class Something extends Something implements Another" properly? I've tried this: class _ListCellRenderer(swing.ListCellRenderer, swing.JLabel): def __init__(self): self.setOpaque(1) def getListCellRendererComponent(self, list, value, index, isSelected, cellHasFocus): item = str(value) if isSelected: self.setBackground(list.getSelectionBackground()) self.setForeground(list.getSelectionForeground()) else: self.setBackground(list.getBackground()) self.setForeground(list.getForeground()) # format the item to html... self.setText(item) return self But the result seems to be erratic. (This is for a JList btw) At times, the data is shown properly, and sometimes, no data comes out at all - i.e. the whole JList is empty. If I don't use this renderer, my JList shows the list items as usual, so I'm pretty convinced it's the cellrenderer that's causing the problem. Any help would be appreciated. Thank you. astigmatik |
From: <ast...@gm...> - 2007-04-03 23:59:32
|
I figured this one out. There's nothing wrong with the ListCellRenderer. Apparently, it's the HTML formatting in the setText that's causing the text not to show up. It's actually quite a narrow list, so when the text is longer than the width of the JList, it is wrapped and so there's some "invisibility" of certain parts of the text being displayed.. I dunno if that makes sense :-) But anyway, I sorta fixed it. On 4/3/07, ast...@gm... <ast...@gm...> wrote: > Hello all, > > From what little knowledge that I have, if I write a class that > inherits from other classes, it'd be something like: > > class sub_class(main_class1, main_class2): > > Based on http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html, > how do I do "class Something extends Something implements Another" > properly? I've tried this: > > class _ListCellRenderer(swing.ListCellRenderer, swing.JLabel): > def __init__(self): > self.setOpaque(1) > def getListCellRendererComponent(self, list, value, index, > isSelected, cellHasFocus): > item = str(value) > if isSelected: > self.setBackground(list.getSelectionBackground()) > self.setForeground(list.getSelectionForeground()) > else: > self.setBackground(list.getBackground()) > self.setForeground(list.getForeground()) > # format the item to html... > self.setText(item) > return self > > But the result seems to be erratic. (This is for a JList btw) At > times, the data is shown properly, and sometimes, no data comes out at > all - i.e. the whole JList is empty. If I don't use this renderer, my > JList shows the list items as usual, so I'm pretty convinced it's the > cellrenderer that's causing the problem. > |