相关疑难解决方法(0)

如何将JTable单元格输入标记为无效?

如果我采用a JTable并在其模型上指定列的classtype,如下所示:

   DefaultTableModel model = new DefaultTableModel(columnNames, 100) {
       @Override
        public Class<?> getColumnClass(int columnIndex) {
            return Integer.class;
        }};
Run Code Online (Sandbox Code Playgroud)

然后,只要用户尝试double在表中输入值,Swing就会自动拒绝输入并将单元格的轮廓设置为红色.

当某人输入单元格的"负数或0"输入时,我希望发生相同的效果.我有这个:

    @Override
    public void setValueAt(Object val, int rowIndex, int columnIndex) {
       if (val instanceof Number && ((Number) val).doubleValue() > 0) {
              super.setValueAt(val, rowIndex, columnIndex);
            } 
       }
   }
Run Code Online (Sandbox Code Playgroud)

这可以防止单元格接受任何非正值,但不会将颜色设置为红色并使单元格保持可编辑状态.

我试着调查JTable默认情况下是如何做出拒绝的,但我似乎无法找到它.

如何拒绝非正输入与拒绝非整数输入相同?

谢谢

java validation swing jtable tablecelleditor

11
推荐指数
1
解决办法
1万
查看次数

使用编辑器验证表的单元格

我的JTable有一个密码字段编辑器.我想在用户单击编辑另一个字段时,如果文本长度小于8位,则显示错误消息.我尝试过焦点听众.但它不起作用.请帮帮我,因为我刚刚开始使用java swing.

class PasswordEditor extends DefaultCellEditor 
{

    TextBox m_passWord = new TextBox(); 
    public PasswordEditor() {
        super(new TextBox());
    }

    @Override
    public Object getCellEditorValue() {

        return this.m_passWord.getText();
    }

    @Override
    public Component getTableCellEditorComponent(JTable table,
            Object value, boolean isSelected, int row, int column) {

        Object fieldValue = value;
        if(null == fieldValue)
            fieldValue = Constants.EMPTY_STRING;

        this.m_passWord.addInputMethodListener(new InputMethodListener() {

            @Override
            public void inputMethodTextChanged(InputMethodEvent event)
            {
                // TODO Auto-generated method stub

            }

            @Override
            public void caretPositionChanged(InputMethodEvent event)
            {
                // TODO Auto-generated method stub

            }
        })
        this.m_passWord.addFocusListener(new FocusListener() …
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor jpasswordfield

4
推荐指数
2
解决办法
5201
查看次数