Red de conocimiento informático - Conocimiento del nombre de dominio - Programación formal java

Programación formal java

/*

*Hice un visor de imágenes y la rueda de desplazamiento y Ctrl+ ↑↓ ajustaron el tamaño.

*/

Importar Java. awt. borderlayout;

Importar Java. cola;

Importar Java.awt.graphics;

Importar Java.awt.image;

Importar Java.awt.toolkit;

Importar evento de acción Java .

Importar evento de clave Java .

Importar Java .evento de rueda de ratón;

Importar evento de rueda de ratón de Java. >Importar Java.io.file;

Importar javax.swing.jbutton;

Importar javax.swing.jcomponent;

Importar selector de archivo javax.swing.j ;

Importar javax.swing .jframe;

Importar javax.swing .filtro de archivos;

La clase pública ScaleImageTest extiende JFrame.

public ScaleImageTest() {

this . setdefaultcloseoperative(EXIT _ ON _ CLOSE);

this.setSize(500, 400); = new JButton(" OPEN ");

open.addActionListener(new ActionListener() {

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

jfile selector selector = nuevo selector de jfile(" . ");

selector . setmultiselectenabled(false);

selector addchooseblefilefilter(nuevo filtro de archivo(){

. @override

público booleano aceptar(archivo f) {

if (f.isDirectory())

devuelve verdadero

Nombre de cadena = f.getName(). toLowerCase();

if (nombre.endsWith(.jpg") || nombre.endsWith(".bmp")

|| nombre.endsWith(".png")

|| nombre.endsWith(".gif")

|| nombre.endsWith(".ico")

|| nombre.endsWith(" .

jpeg”))

Devuelve verdadero

Devuelve falso

}

@Override

Cadena pública getDescription ( ) {

Devuelve "archivo de imagen";

}

});

selector showopendialog(prueba de imagen a escala. this ) ;

archivo archivo = selector . getselectedfile();

if(file==null)

return;

imagen imagen = kit de herramientas . getdefaulttoolkit(). getImage(

archivo . getpath()

panel.setImage(imagen

}

< p); >});

panel = new ScaleImagePanel(null, 1);

this.add(panel, BorderLayout.center);

this.add ( open, BorderLayout. South);

addkey oyente (nuevo oyente de clave(){

Clave de anulación pública (evento clave e) {

int code = e obtener código de clave();

boolean ctrl abajo = e . iscontroldown();

double Inc = 0

if(ctrl abajo & amp; & ampcode == KeyEvent.VK_UP) {

inc = INC

} else if(ctrl abajo & ampcode == KeyEvent.VK_DOWN) {

INC = -INC;

} En caso contrario {

Regresar

}

doble nuevo pro = panel . /p>

if(new pro & lt;ScaleImagePanel.MIN_PRO

| | newpro & gtScaleImagePanel.MAX_PRO)

Return;

conjunto de paneles. proporción (nuevo profesional);

}

clave de anulación pública liberada (evento clave e){

}

anulación pública escrita ( KeyEvent e) {

}

});

this addmousewheelistener(new mousewheelistener(){

@cover

public void mousewheelemoved(MouseWheelEvent e){

int rotación = e.getWheelRotation

doble nuevo pro = panel getproportion()+INC * rotación;

if(nuevo profesional <ScaleImagePanel. MIN_PRO

| nuevopro y gtScaleImagePanel.

MAX_PRO)

Regresar;

panel establecer proporción(nuevo profesional);

}

});

}

Doble inc final estático privado = 0,25

Panel ScaleImagePanel privado;

JButton privado abierto;

Clase final estática pública ScaleImagePanel extiende JComponent {

panel de imagen de escala pública (imagen de imagen, proporción int) {

this.setImage(imagen);

this.setProportion(proporción) ;

}

public double getProportion() {

Devuelve la proporción;

}

public void setProportion (doble proporción){

if (proporción & ltMIN _ PRO | | proporción & gtMAX_PRO)

lanza una nueva IllegalArgumentException("La proporción debe estar en ["

+MIN_PRO +","+MAX_PRO+"]";

this.proportion =proportion;

this .validate();

this repaint(. );

}

Imagen pública getImage() {

Devolver imagen;

}

public void setImage(Imagen Imagen){

this.image = imagen

this valid();

this . >}

@Override

Dimensión pública getPreferredSize() {

Devolver nueva dimensión ((int)(imagen. getwidth(this)* proporción),

(int) (image.getHeight(this) *scale));

}

@overlay

Componente de pintura en blanco protegido ( gráfico g) {

if (imagen == null)

return;

tamaño de dimensión = getSize();

tamaño previo de dimensión = getPreferredSize();

int x =(tamaño . ancho-pretamaño . ancho)/2;

int y =(tamaño . alto-presimenaje . alto) /2;

g.drawImage(imagen, x, y, presize.width, presize.height, this);

}

Proporción privada = 1;

Imagen de imagen privada;

Doble final estático privado MAX_PRO = 8;

Doble final estático privado MIN_PRO = 0,25

}

/**

* @param args

*/

Public static void main(String[] args ) {

EventQueue.invokeLater(new Runnable() {

Public void Runnable(){

Nueva prueba de imagen de escala(). establecer visible(verdadero);

}

});

}

}