¿Como puedo hacer el efecto lupa?
Necesito hacer el efecto lupa o zoom con letras en un applet
Tengo que pasar el puntero del mouse con una forma circular g.drawOval(x-10, y-10,20,20); o rectangular, y las letras que entren dentro de ese circulo o rectangulo deben aumentar de tamaño.
Esto es algo que he hecho, en realidad casi nada.
Si me pudieras ayudar te lo agradeceria mucho
¿Cómo lo puedo hacer?
Lo casi nada que he hecho es esto
import java.awt.*;
import java.applet.*;
public class Cursor extends Applet{
private Dimension Loc;
private boolean Drag;
private Font f[]={new Font("Times",Font.PLAIN,14),new Font ("Times",Font.BOLD+Font.ITALIC,36)};
private FontMetrics fm[]=new FontMetrics[f.length];
public void init(){resize(640,480);
for (int i=0;i<f.length;i++)
fm=getFontMetrics(f);
resize (500,600);}
public void paint(Graphics g){
String Cursor="[" + Loc.width + "," + Loc.height + "]";
g.drawString(Cursor,40,40);
if(Drag){g.setColor(Color.red);}else {g.setColor(Color.black);}
int x=Loc.width;
int y=Loc.height;
String fr="Dabale arroz a la zorra el abad";
char c[];
c=new char[fr.length()];
//for(int j=0;j<f.length;j++)
//g.drawString(fr,(getSize().width - fm[j].stringWidth(fr))/2,(getSize().height/(f.length+1))*(j+1)+fm[j].getMaxAscent());
//nueva
/* if(Drag)
{setFont(new Font("Arial",Font.ITALIC,46));}
else
{setFont(new Font("Arial",Font.PLAIN,36));}
int x=Loc.width;
int y=Loc.height;
}
*/
for(int i=0;i<fr.length();i++){
setFont(new Font("Arial",Font.ITALIC,15));
g.drawChars(c,i,1,i,200);
}
g.drawOval(x-25,y-25,50,50);
//
fr.getChars(0,fr.length(),c,0);
//g.drawChars(c,0,1,x,y);
//
}
//g.drawLine(x-2,y,x+2,y);
//g.drawLine(x,y-2,x,y+2);}
public boolean mouseDrag(Event evt,int x,int y){
Drag=true;
Loc=new Dimension(x,y);
repaint();
return true;}
public boolean mouseMove(Event evt,int x,int y){
Drag=false;
Loc=new Dimension(x,y);
repaint();
return true;}}
Tengo que pasar el puntero del mouse con una forma circular g.drawOval(x-10, y-10,20,20); o rectangular, y las letras que entren dentro de ese circulo o rectangulo deben aumentar de tamaño.
Esto es algo que he hecho, en realidad casi nada.
Si me pudieras ayudar te lo agradeceria mucho
¿Cómo lo puedo hacer?
Lo casi nada que he hecho es esto
import java.awt.*;
import java.applet.*;
public class Cursor extends Applet{
private Dimension Loc;
private boolean Drag;
private Font f[]={new Font("Times",Font.PLAIN,14),new Font ("Times",Font.BOLD+Font.ITALIC,36)};
private FontMetrics fm[]=new FontMetrics[f.length];
public void init(){resize(640,480);
for (int i=0;i<f.length;i++)
fm=getFontMetrics(f);
resize (500,600);}
public void paint(Graphics g){
String Cursor="[" + Loc.width + "," + Loc.height + "]";
g.drawString(Cursor,40,40);
if(Drag){g.setColor(Color.red);}else {g.setColor(Color.black);}
int x=Loc.width;
int y=Loc.height;
String fr="Dabale arroz a la zorra el abad";
char c[];
c=new char[fr.length()];
//for(int j=0;j<f.length;j++)
//g.drawString(fr,(getSize().width - fm[j].stringWidth(fr))/2,(getSize().height/(f.length+1))*(j+1)+fm[j].getMaxAscent());
//nueva
/* if(Drag)
{setFont(new Font("Arial",Font.ITALIC,46));}
else
{setFont(new Font("Arial",Font.PLAIN,36));}
int x=Loc.width;
int y=Loc.height;
}
*/
for(int i=0;i<fr.length();i++){
setFont(new Font("Arial",Font.ITALIC,15));
g.drawChars(c,i,1,i,200);
}
g.drawOval(x-25,y-25,50,50);
//
fr.getChars(0,fr.length(),c,0);
//g.drawChars(c,0,1,x,y);
//
}
//g.drawLine(x-2,y,x+2,y);
//g.drawLine(x,y-2,x,y+2);}
public boolean mouseDrag(Event evt,int x,int y){
Drag=true;
Loc=new Dimension(x,y);
repaint();
return true;}
public boolean mouseMove(Event evt,int x,int y){
Drag=false;
Loc=new Dimension(x,y);
repaint();
return true;}}
1 respuesta
Respuesta de fcuezva
1