0

我有一个 JTable,其中一列预先填充了 30 分钟的时隙(6.30-24.00)。

现在我有另一个表,其中有一个电影标题列表,其中包含一个包含电影持续时间的列(以分钟为单位 - 例如 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:35:44.557 回答
0

当您单击正确的列时它可以工作,而当您单击另一个列时它会失败,不是吗?您已将固定逻辑(解析持续时间数)应用于变量列(取决于用户单击的确切列)。访问具有固定编号的列,不检查选定的列索引。

于 2012-04-14T16:37:40.020 回答