Guest User

Untitled

a guest
May 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. val myTable = new Table {
  2. lazy val tcm = initColumnModel
  3. peer.setColumnModel(tcm)
  4.  
  5. override
  6. protected def rendererComponent(sel: Boolean, foc: Boolean, row: Int, col: Int) = {
  7. //GET THE VALUE FROM THE TableModel
  8. val value = model.getValueAt(
  9. peer.convertRowIndexToModel(row),
  10. peer.convertColumnIndexToModel(col))
  11. //GET THE RENDERER FROM THE ColumnModel
  12. val renderer = tcm.getColumn(col).getCellRenderer
  13. //WRAP IN A COMPONENT
  14. Component.wrap(renderer.getTableCellRendererComponent(
  15. peer,
  16. value,
  17. sel,
  18. foc,
  19. row,
  20. col).asInstanceOf[JComponent])
  21. }
  22. }
  23.  
  24. val tcr = new Table.AbstractRenderer[MyObj, MyRenderer](new MyRenderer) {
  25. def configure(t: Table, sel: Boolean, foc: Boolean, o: MyObj, row: Int, col: Int) = {
  26. //component variable is bound to your renderer
  27. component.prepare(o)
  28. }
  29. }
  30.  
  31. class MyRenderer extends Label {
  32. def prepare(o: MyObj) {
  33. text = o.toString //or whatever
  34. }
  35. }
  36.  
  37. val t = new Table {
  38. override def rendererComponent(sel: Boolean, foc: Boolean, row: Int, col: Int) = {
  39. //FIND VALUE
  40. val v = model.getValueAt(
  41. peer.convertRowIndexToModel(row),
  42. peer.convertColumnIndexToModel(row))
  43. col match {
  44. case 0 => tcr.componentFor(this, sel, foc, v, row, col)
  45. }
  46. }
  47. }
  48.  
  49. val ltcr = new LabelRenderer[MyObj] ( (o: MyObj) => (null, o.toString) )
Add Comment
Please, Sign In to add comment