1

MySQL データベースにリンクされている jXTable があります。DefaultTableModel を使用しています。これまでのところ、ユーザーはテーブル内のデータを編集できます。「新しい行を挿入」ボタンを追加しようとしましたが、失敗しました。その間、ユーザーがテーブルを更新するたびに、テーブルの最後に空の行を追加するだけでよいと思いました。addRow() メソッドで空の行を取得できましたが、編集できません。これまでの私のコードは次のとおりです。空の行を編集可能にする方法に関するヒントはありますか?

     public void rowSetChanged(RowSetEvent event) {         
             Object[] record;
             Object[] emptyrow;
             String [] columnNames=new String [] {"DATE RECEIVED", "INCOME NAME", 
                "DESCRIPTION", "AMOUNT", "FUND ALLOCATION"};

             DefaultTableModel dtm=new DefaultTableModel(columnNames,0){
                    Class[] types = new Class [] {
                        java.sql.Date.class, java.lang.String.class, java.lang.String.class, 
                        java.lang.Object.class, java.lang.Float.class, java.lang.String.class};
                        public Class getColumnClass(int columnIndex) {
                            return types [columnIndex];
                        }
                };              

             try {    
                IncomeUI.frs.beforeFirst();                   
                        while (IncomeUI.frs.next()){
                            record=new Object[]{IncomeUI.frs.getDate("DateReceived"), 
                            IncomeUI.frs.getString("IncomeName"), IncomeUI.frs.getString("Description"), 
                            IncomeUI.frs.getBigDecimal("Amount"),IncomeUI.frs.getString("FundAllocation")};
                        dtm.addRow(record);
               }              
             } catch (SQLException ex) {ex.printStackTrace();} 

             emptyrow = new Object[]{" ", " ", " ", " ", " "};
             dtm.addRow(emptyrow);

            this.setModel(dtm);   
            this.setShowHorizontalLines(false);
            this.setShowVerticalLines(false);     
            IncomeUI.jScrollPane2.setViewportView(this);  
            //System.out.println(event.toString());
}
4

1 に答える 1

0

まあ、100%の修正ではありませんが、うまくいきます。結局、偽のデータを含む新しい行を追加するコードを追加するだけでした(「Edit Me」など)。ユーザーはそれを再編集できます。今のところ動作します。

于 2014-04-24T00:54:42.047 に答える