Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > JTable Cell Integer (String) InputVerifier


Автор: OlegLV 12.3.2008, 13:29
Если в JTable columnClass = Integer.class, то при вводе буквы border ячейки становится красным и переход на следующую ячейку не осуществляется,
кто подобное вообще делает - цель сделать на columnClass = String.class подобную проверку

Код


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class TableCellVerifier {

    public TableCellVerifier() {
        JFrame jFrame = new JFrame();
        jFrame.setSize(180, 80);
        jFrame.setTitle("Application");
        jFrame.setLayout(null);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel jPanel = new JPanel();
        jFrame.setContentPane(jPanel);
        TableModel tm = new AbstractTableModel() {
            String[] head = {"a", "b"};
            Object[][] data = { {"test1", new Integer(5)}, {"test2", new Integer(7)} };
            public int getColumnCount() { return head.length; }
            public int getRowCount() { return data.length;}
            public Class getColumnClass(int c) { if (c == 1) return (Class) Integer.class; else return (Class) String.class; }
            public boolean isCellEditable(int row, int col) { return true; }
            public Object getValueAt(int row, int col) { return data[row][col]; }
        };
        JTable jTable = new JTable(tm);
        jPanel.add(jTable);
        jFrame.setVisible(true);
    }

    public static void main(String[] args) {
        new TableCellVerifier();
    }
}


Автор: SySaD 21.3.2008, 11:52
для ячейки написать CellEditor
в getCellEditorValue() сделать проверку введенного значения и если оно не соответствует классу - сделать рамку красной и все остальное.

Если я правильно понял суть вопроса конечно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)