2017-06-12 83 views
-1

请帮助我在这一个家伙。JTable货币输出和行下一行

  • 我需要我的表花车转换成货币
  • 我想在该行 时,它有一个较长的文本年底摆脱“......”。

我试过在互联网上的东西,但它不起作用。

public void GetDataFromListofTithes() throws SQLException 
{ 
Connection connection = conn; 
Statement state = conn.createStatement(); 
ResultSet rs = state.executeQuery("select * from pogi;"); 
ResultSetMetaData rsmetadata = rs.getMetaData(); 
int columns = rsmetadata.getColumnCount(); 

DefaultTableModel dtm = new DefaultTableModel() 

     { 
@Override 
public boolean isCellEditable(int row, int column) { 
    return false; 
}}; 


Vector<String> Columns_names = new Vector(); 
Vector data_rows = new Vector(); 
for(int i=1;i<= columns; i++){ 
Columns_names.addElement(rsmetadata.getColumnName(i)); 
} 
dtm.setColumnIdentifiers(Columns_names); 

while(rs.next()){ 
    int k = rs.getRow(); 
    data_rows = new Vector(); 
    for(int j = 1;j<=columns; j++){ 
    data_rows.addElement(rs.getString(j)); 

    } 
    dtm.addRow(data_rows);} 

} 
+0

“不起作用”并不是一个足够准确的错误描述,可以帮助我们。 *什么*不起作用? *如何*不起作用?你的代码有什么问题?你有错误信息吗?什么是错误信息?你得到的结果不是你期待的结果吗?你期望得到什么结果?为什么?你得到了什么结果?两者有什么不同?你正在观察的行为不是所期望的行为?什么是期望的行为,为什么,观察到的行为是什么,以及它们以何种方式不同? –

+0

你能否提供一个你想要发生什么的*精确*规范,包括任何和所有规则,这些规则中的例外情况,角落案例,特殊情况和边缘案例?您能否提供样本输入和输出,以显示您在正常情况下以及在所有例外情况,拐角情况,特殊情况和边缘情况下都会发生什么? –

+0

我似乎无法弄清楚我将如何操作从mysql“select * from pogi”中获取rsmeta数据的行以获取我的jtable显示。因为我希望获取的数据被转换为货币 –

回答

1

我想取出

摇摆使用渲染器以在细胞中显示数据被转换为货币的DATAS。因此,您需要创建一个自定义渲染器来将该数字显示为货币。

检出Table Format Renderers以便使用Formatter创建自定义渲染器。

您可以自行创建,或使用链接中提供的自定义类来简化任务。

-1
import java.awt.Component; 
import java.awt.Font; 
import java.text.DecimalFormat; 
import java.text.MessageFormat; 
import java.text.NumberFormat; 
import javax.swing.JLabel; 
import javax.swing.JTable; 
import javax.swing.table.TableCellRenderer; 

public class MyTableCellRenderer extends JLabel implements TableCellRenderer { 
Font italic_11 = new Font("Tahoma",Font.PLAIN,10); 
NumberFormat formatter = new DecimalFormat("#0.00"); 
NumberFormat formatterwithcomma = new DecimalFormat("##,###,##0.00"); 
MessageFormat currformat = new MessageFormat("$###,##0.00"); 


    public Component getTableCellRendererComponent(JTable table, Object value, 
      int rowIndex, int vColIndex) { 

     setFont(italic_11); 
// i need to make this code work but it has error saying cant convert object as number 
     formatterwithcomma.format(value); 
     setText(value.toString()); 
     return this; 
    } 

    public void validate() {} 
    public void revalidate() {} 
    protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {} 
    public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {} 
} 
+0

即时贴近我的需要人。感谢您的建议和建议。我学到了很多。但我只有一个概率。我需要使用numberformat或messageformat格式化单元格渲染器中的对象。我似乎无法使它工作。 –

+0

为什么你的代码如此复杂。我给你简单的例子。 – camickr

+0

在网站提供的代码似乎不起作用在我的情况。也许它不适用于defaultmodeltable idk。 –