java验证进入JTable单元格的条目
我的JTable有一列输入产品的价格。我希望能够在单元格中输入数字。单元格只接受数字
我用keylistener做了一个方法,但没有得到结果
表中单元格的我的代码:
public class TextAreaEditor extends DefaultCellEditor {
protected JScrollPane scrollpane;
protected JTextArea textarea;
public TextAreaEditor() {
super(new JCheckBox());
scrollpane = new JScrollPane();
textarea = new JTextArea();
textarea.setLineWrap(true);
textarea.setWrapStyleWord(true);
// textarea.setBorder(new TitledBorder("This is a JTextArea"));
scrollpane.getViewport().add(textarea);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
textarea.setText((String) value);
return scrollpane;
}
public Object getCellEditorValue() {
return textarea.getText();
}
}
public class TextAreaRenderer extends JScrollPane implements TableCellRenderer
{
JTextArea textarea;
public TextAreaRenderer() {
textarea = new JTextArea();
textarea.setLineWrap(true);
textarea.setWrapStyleWord(true);
// textarea.setBorder(new TitledBorder("This is a JTextArea"));
getViewport().add(textarea);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column)
{
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
textarea.setForeground(table.getSelectionForeground());
textarea.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
textarea.setForeground(table.getForeground());
textarea.setBackground(table.getBackground());
}
textarea.setText((String) value);
textarea.setCaretPosition(0);
return this;
}
}
欢迎提出任何建议
共 (0) 个答案