如果我采用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默认情况下是如何做出拒绝的,但我似乎无法找到它.
如何拒绝非正输入与拒绝非整数输入相同?
谢谢
我有一个非常基本的矩形绘图面板,但我想知道是否有一种简单的方法可以为矩形添加某种发光.
public class Blocks extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.BLACK);
for (int i = 1; i <= totalSteps; i++) {
g.setColor(Color.WHITE);
g.fillRect(100 + i*60, 260, 50, 50);
}
}
}
Run Code Online (Sandbox Code Playgroud)