2010-05-18 40 views
0

我需要以jTable格式表示浮點數。 當我做tbl.model.add_row [obj, 1.3524632478].to_java時,obj表示爲to_s方法的返回值,但float不。重寫float的to_s方法什麼也不做。 我想在我所有的表格中使用像這樣的花車 class Float def to_s sprintf("%.2f", self) end endjRuby的浮點數表示在JTable的單元格中

回答

0

Ruby類轉換成Java類被矢量行時。我將to_s方法添加到java的Float類中,並且它的OK

0

我會推測這是由於默認TableCellRenderer使用調用java.lang.Float.toString(some_float)而不是some_float.to_s。因此,除了你已經有浮動的to_s完成,添加這些:

class MyCellRenderer < Java::JavaxSwingTable::DefaultTableCellRenderer::UIResource 
    def setValue(value) 
     setText(value.nil? ? "" : value.to_s) 
    end 
end 
my_cell_renderer = MyCellRenderer.new 

# This to set it globally 
my_table.setDefaultRenderer(java.lang.Object, my_cell_renderer) 

# Or this to set it for specific columns only 
my_table.column_model.getColumn(0).setCellRenderer(my_cell_renderer)