018
02.06.2006, 22:32 Uhr
Lumina
|
C++: |
tm = new DefaultTableModel(nrOfRows, 5) { public boolean isCellEditable(int row, int col) { return (col == 0 ? false : true); //Sperrt die Eingabe in Spalte 0 } public Class getColumnClass(int col) { if (col == 1 || col == 3) { return Float.class; } if (col == 2 || col == 4) { return JComboBox.class; } return Object.class; } };
// Textfeld für Kommazahleneingabe anlegen: JTextField txtForFloats = new JTextField();
txtForFloats.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); JOptionPane opt = new JOptionPane(); opt.showMessageDialog(null, String.valueOf(c)); if (!Character.isDigit(c) && c != KeyEvent.VK_ENTER && c != KeyEvent.VK_COMMA && c != KeyEvent.VK_PERIOD && c != KeyEvent.VK_TAB && c != KeyEvent.VK_BACK_SPACE) { Toolkit.getDefaultToolkit().beep(); e.consume(); } } });
// Das Kommazahlen-Textfeld als Editor verwenden: TableCellEditor editFloats = new DefaultCellEditor(txtForFloats); this.jTblIsData.setDefaultEditor(Float.class, editFloats);
|
Damit bekomm ich eine Exception, sobald ich aus einer JComboBox was ausgewählt hab, außerdem kann ich immer noch Buchstaben in Spalte 2 und 4 eingeben....
Exception: Starte CDokumente und Einstellungen\Sonja\Eigene Dateien\Pumpenhelferlein\FrmTest.java
java.lang.IllegalArgumentException: Cannot format given Object as a Number at java.text.NumberFormat.format(NumberFormat.java:219) at java.text.Format.format(Format.java:133) at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:3397) at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:168) ......... -- ******************************************* Willst du glücklich sein im Leben, trage bei zu and'rer Glück, denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück! ******************************************* |