2017-06-12 87 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。 –