Paso 3: Cómo modificar obras
Expresiones Tweak se compone de dos partes: el Panel modificar (que muestra las variables y permite a los usuarios interactuar y cambiar) y una estructura de clase que permite para que tipos de variables comunes (o combinados y complejos) compartir un conjunto de métodos para la visualización de manipulación y límites de control.
El Panel de modificar se extiende un JFrame y permite una nueva ventana para crear donde se muestran las variables. Hay un puñado en código de interacción que maneja clics arrastra y desplazamiento (en caso de tener un montón de variables!).
Ahora echemos un vistazo a cómo un tipo Tweak (como TweakInt TweakFloat TweakBool y TweakPoint) funciona.
Todos los tipos de Tweak extender y clase abstracta TweakParameter. Esto asegura que todos los tipos de Tweak será capaces de trabajar con el Panel de modificar. Un TweakParameter tiene una descripción una manera para incrementar o disminuir una variable límites control de y una cadena de valor. Cada tipo de Tweak toma un poco de código pero todo es bastante sencillo.
Esto es lo que parece el TweakInt: class TweakInt extends TweakParameter{ ------------------------------
------------------------------
int origVal;
int val;
int maxVal;
int minVal;
int step;
public TweakInt(String desc int val int step int minVal int maxVal){
this.val = val;
this.origVal = val;
this.minVal = minVal;
this.maxVal = maxVal;
this.step = step;
this.desc = desc;
tweakParamList.add(this);
tweak_initParamManagerIfNeeded();
}
public TweakInt(String desc int val int step){
this(desc val step -Integer.MAX_VALUE Integer.MAX_VALUE);
}
public TweakInt(String desc int val){
this(desc val 1);
}
boolean supportsX(){
return true;
}
boolean supportsY(){
return false;
}
void incX(){
val += step;
}
void decX(){
val -= step;
}
void incY(){
}
void decY(){
}
int equalToOriginalValue(){
if(val < origVal){
return -1;
}
else{
if(val > origVal){
return +1;
}
else{
return 0;
}
}
}
String valString(){
return ""+val;
}
void keepInBounds(){
if(val > maxVal){
val = maxVal;
}
if(val < minVal){
val = minVal;
}
}
}
Usando esta misma estructura de usted puede crear sus propios tipos de Tweak. Tipos básicos (como doble largo Char etc.) puede ser construido muy similar a la TweakInt pero no hay que parar allí. Tipos más complejos pueden también crearse ese trabajo con múltiples variables y estado interno o comunican con otras variables del Tweak.
Si usted está interesado en la construcción de sus propios tipos de Tweak consulte el archivo Tweak.pde (algunos de los otros tipos también pueden ayudar a como el TweakPoint que controla dos variables X e Y al mismo tiempo).