我为大学课程的图像编辑器项目开发了一个gui。它的核心功能都在那里,但我觉得我应该限制用户(ta在oop高级课程最有可能)只在文本字段中输入值0-255,即使我在我的自定义像素类,如setred(短红色)的方法,该方法参数将固定在255,如果它大于它(类似地去为零)值)。
public void setRed (short newRed)
{
if(newRed>MAX_PIXEL_VALUE)
this.red=MAX_PIXEL_VALUE;
else if (newRed<MIN_PIXEL_VALUE)
this.red=MIN_PIXEL_VALUE;
else
this.red=newRed;
}
常数具有以下值:
private static final short MIN_PIXEL_VALUE = 0;
private static final short MAX_PIXEL_VALUE = 255;
private static final short MIN_TRANSPARENCY = 255;
private static final short MAX_TRANSPARENCY = 0;
大多数组件来自awt包(在oop java课程中介绍),采用rgb输入进行选择着色的文本字段和用于层透明度调整的alpha字段是jformatedtextfields,这些字段是使用以下数字格式创建的:
private NumberFormatter rgbaFormater()
{
NumberFormat rgbaFormat = NumberFormat.getInstance();
rgbaFormat.setMinimumIntegerDigits(0);
rgbaFormat.setMaximumIntegerDigits(3);
NumberFormatter rgbaFormater = new NumberFormatter(rgbaFormat) ;
rgbaFormater.setValueClass(Integer.class);
rgbaFormater.setMinimum(0);
rgbaFormater.setMaximum(255);
rgbaFormater.setAllowsInvalid(false);
rgbaFormater.setCommitsOnValidEdit(true);
return rgbaFormater;
}
当我无法删除整个输入的字符串时,就会出现问题,如我键入255时所示,2无法删除。我只能通过用鼠标选择它并在上面键入来更改它的值。我怎样才能解决这个问题?
提前多谢了!
暂无答案!
目前还没有任何答案,快来回答吧!