Compartir código fuente del programa
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; p>
archivo[]archivos seleccionados = nulo;
int índice de archivo = 0;
int ancho = 200
int alto = 200 p>
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");
//Establecer tipo de archivo
chooser.setFileFilter(filter);
//Abrir el panel de selección
int return val = selector . showopendialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
archivos seleccionados = selector obtiene archivos seleccionados();
repintar (. );
}
}
se hizo clic en el vacío público (evento del mouse e){
}
entrada del mouse public void (evento del mouse e){
}
salida del mouse public void (evento del mouse e){
}
public void mouse presionado (evento del mouse e){
punto punto = información del mouse . getpointerinfo() obtener ubicación();
x = punto.x
< p. >y = point.y}
ratón vacío público liberado (evento del mouse e){
punto punto = información del mouse getpointerinfo(). get ubicación();
int thisX = point.x
int thisY = point.y
system out . " "+" thisY = "+thisY);
If ((y-thisY & lt; 20 & amp& ampy-thisY & gt; 0)
| |(y- thisY <0 & amp&y-thisY >-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 -;
}
}
} De lo contrario {
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 pública en blanco (gráfico g) {
super.paint(g);
if (selectedFiles!= null) {
icono de imagen icon = icono de nueva imagen(archivos seleccionados[índice de archivo]
.getPath());
g.drawImage(icon.getImage(), 0, 0, ancho, alto, esto );
}
}
}
}