0

1つの列に30分のタイムスロット(6.30-24.00)が事前に入力されているJTableがあります。

これで、映画の長さ(分単位、たとえば140分)の列を含む映画タイトルのリストを含む別のテーブルができました。

今、私はこれを行うボタンを持っています。私はコードを作成しましたが、これはおかしなことに、機能する場合と機能しない場合があります(3〜4タイトルを追加した後)。それは数学の方程式に従ってタイムスロットに追加されます。それは私に与えます:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "DRAMA"

これはコードです:

btnAddProg.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {

                        try {
                        int dur = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), listTable.getSelectedColumn()+1).toString()) / 30;
                        int durT = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), listTable.getSelectedColumn()+1).toString());
            if(durT % 30 != 0)
            {
                dur += 1;   
            }   

                for(int i = 0; i < dur; i++)
                {
                    String value = progTableModel.getValueAt(listTable.getSelectedRow(), listTable.getSelectedColumn()).toString();
                                        String value2 = progTableModel.getValueAt(listTable.getSelectedRow(), listTable.getSelectedColumn()+2).toString();
                                        channel1DataTitle.set(chOneTable.getSelectedRow()+i, value);
                                        channel1DataGenre.set(chOneTable.getSelectedRow()+i, value2);
                }
                                        chOneTable.repaint();
                        } catch (IndexOutOfBoundsException f) {

                            JOptionPane.showMessageDialog(frame,
                             "Please select a row in the Channel table!",
                                "Channel row not selected",
                                 JOptionPane.PLAIN_MESSAGE);


                        }


                    }
                });

誰かが私に何が悪いのか教えてもらえますか?

4

2 に答える 2

0

適切な列をクリックすると機能し、別の列をクリックすると失敗しますね。可変列に適用される固定ロジック(期間数の解析)があります(ユーザーがクリックした正確な列によって異なります)。固定番号の列にアクセスします。選択した列インデックスを確認しないでください。

于 2012-04-14T16:37:40.020 に答える
0

数値に変換されない文字列を解析しようとしています。問題は、ユーザーが選択したものをすべて処理していることのようです。処理するデータをテーブルの特定の列からのものに制限するか、データを処理する前にデータを検証する必要があります。

于 2012-04-14T16:35:44.557 に答える