Red de conocimiento informático - Aprendizaje de código fuente - Código fuente del filtro de búsqueda

Código fuente del filtro de búsqueda

Te daré el código y leeré los comentarios. Para evitar que el mouse se mueva hacia los lados cuando se mueve hacia la izquierda o hacia la derecha, agregué una rotación en abanico.

Dentro de veinte píxeles, se considera horizontal.

Echa un vistazo.

Afortunadamente, te moviste mientras mantenías presionado el mouse. Sería problemático si simplemente movieras el mouse.

-

Importar Java .awt .gráficos

Importar Java . ;

Importar evento de acción Java .

Importar evento de mouse de Java . evento;

Importar Java. evento. p>

Importar archivo Java.io.

Importar icono de imagen javax.swing.

p>

Importar javax.swing.jbutton;

Importar selector de archivos javax.swing.j;

Importar javax.swing.jframe;

Importar javax .swing .jpanel;

Importar javax . . selector de archivos . filenameextensionfilter;

La aplicación de clase pública extiende JFrame para implementar MouseListener, ActionListener {

int x = 0 ;

int y = 0;

archivo[]archivos seleccionados = nulo;

int índice de archivo = 0;

int ancho = 200

int alto = 200

Aplicación pública(){

setDefaultCloseOperation(EXIT _ ON _ CLOSE);

setLocationRelativeTo( null);

setResizable(falso);

getContentPane(). establecer diseño (nulo);

Panel JPanel = nuevo panel de imagen();

panel.setBounds(12, 40, 370, 218);

getContentPane (). add(panel);

addmouse listener(this);

JButton BTN Browse = new JButton(" Browse ");

BTN browser addactionlistener(this.

btnBrowse.setBounds(12, 9, 91, 21);

getContentPane();

agregar (exploración BTN);

establecer visible (verdadero);

}

Public static void main(String[] args) {

Nueva aplicación();

}

Acción de anulación pública realizada (evento de acción e){

Selector de jfile = nuevo selector de jfile();

selector . setmultiselectenabled(true);

FileNameExtensionFilter filter = new FileNameExtensionFilter(

Imagen JPG y GIF", "jpg", "GIF");

p>

//Establece el tipo de archivo

chooser.setFileFilter(filter);

//Abre el panel de selección

int return val = selector . showopendialog(this);

if (returnVal == JFileChooser . APPROVE_OPTION) {

archivos seleccionados = selector obtiene archivos seleccionados(); ;

}

}

público vacío al hacer clic con el mouse (evento del mouse e){

}

público void mouse enter(evento del mouse e){

}

public void mouse salió (evento del mouse e){

}

public anular el mouse presionado (evento del mouse e){

punto punto = información del mouse . getpointerinfo() obtener ubicación();

x = punto.x

. y = point.y

}

ratón vacío público liberado (evento del mouse e){

punto punto = información del mouse getpointerinfo(). obtener ubicación();

int thisX = point.x

int thisY = point.y

system out . " " thisY = " thisY);

if ((y-thisY lt; 20 ampy-thisY gt; 0)

| |(y-thisY lt; 0 ampy -thisY gt;-20)) {

// El movimiento Y dentro de 20° se considera un movimiento horizontal.

if(x lt; thisX) {

//right

if (selectedFiles!=null

amp ampfileIndex ltselectedFiles.length - 1) {

índice de archivo;

}

} De lo contrario {

//lado izquierdo

if (selectedFiles!= null amp ampfileIndex gt0) {

Índice de archivos-;

}

}

}else {

if(x lt;thisX) {

//Abajo a la derecha

Ancho = 20;

Alto = 20;

}En caso contrario{

//Esquina superior izquierda

Ancho-= 20;

Alto-= 20;

}

}

repaint();

}

La clase ImagePanel extiende JPanel {

Pintura en blanco pública ( gráfico g) {

super.paint(gram);

if (selectedFiles!= null) {

icono de imagen ícono = nuevo ícono de imagen (archivos seleccionados [ índice de archivo]

.getPath());

g.drawImage(icon.getImage(), 0, 0, ancho, alto, esto);

}

}

}

}