JTable仅在尚未创建的行的单元格中编号

时间:2017-09-29 15:07:44

标签: java swing nullpointerexception numbers jtable

我可能需要你的帮助才能解决问题。 我想仅在JTable的第一列中允许数字,但该行尚未创建,但只需单击按钮即可。

输入一些代码后,我在尝试编译时遇到NullPointerException。 我认为" setCellEditor"导致问题的原因是什么?是因为JTable中没有行" tblBestellMaske" ??

如何解决这个问题,最后只允许每行第0列中的数字

例外:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.DefaultCellEditor.<init>(Unknown Source)
at Hauptmaske.<init>(Hauptmaske.java:588)
at Haupt.main(Haupt.java:17)

守则:

// Tabelle BestellMaske
tblBestellMaske = new JTable(modelBestellMaske);
// Spaltengröße und Zeilenhöhe festlegen
tblBestellMaskeSpaltenModel = tblBestellMaske.getColumnModel();
tblBestellMaskeSpaltenModel.getColumn(0).setPreferredWidth(20);
tblBestellMaskeSpaltenModel.getColumn(1).setPreferredWidth(200);
tblBestellMaskeSpaltenModel.getColumn(2).setPreferredWidth(30);
tblBestellMaskeSpaltenModel.getColumn(3).setPreferredWidth(30);
tblBestellMaske.setRowHeight(30);
// Menge, Einzelpreis und Mengenpreis werden rechtsbündig angezeigt
zentrieren(tblBestellMaske, 0);
rechtsbündig(tblBestellMaske, 2);
rechtsbündig(tblBestellMaske, 3);

TableColumn tblColumn = tblBestellMaske.getColumnModel().getColumn(0);
tblColumn.setCellEditor(new DefaultCellEditor(zelle));
tblBestellMaske.setCellSelectionEnabled(true);
zelle.addKeyListener(new KeyAdapter()
    {
    @Override
    public void keyTyped(KeyEvent e)
        {
        char c = e.getKeyChar();
        if (!((c >= '0') && (c <= '9') || (c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE)))
            {
            getToolkit().beep();
            e.consume();
            }
        }
    });
tblBestellMaske.setFont(new Font("Segoe UI", Font.PLAIN, 14));
tblBestellMaske.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrBestellMaske.setViewportView(tblBestellMaske);

如果您可能需要更多代码,请提前告知我们

0 个答案:

没有答案