Red de conocimiento informático - Descarga de software - Escribir un navegador en java

Escribir un navegador en java

Importar Java .borderlayout

Importar Java evento . evento;

Importar Java . awt . evento de escucha

Importar Java . >

Importar icono javax.swing.image;

Importar botón javax.swing.j;

Importar selector de archivo javax.swing.j;

Importar javax .swing.jframe;

Importar javax.jmenu;

Importar javax.jmenubar; >

Importar javax.swing.jpanel;

La clase pública ImageGallery extiende JFrame para implementar ActionListener {

Public static final int G_WIDTH = 400, G_HEIGHT = 620

Int final estático público L_WIDTH = 1200, L_HEIGHT = 520

Int final estático público MAX_R = 3, MAX_C = 2;

int final estático público GRID = 1, LARGE = 2 ;

Selector de JFileChooser privado

Barra de herramientas JMenuBar privado;

Menú JMenu privado;

El JMenuItem privado está abierto;

Lista de matrices privadas<String>Path;

JPanel privado mostrandoPanel, panel de botones

página int privada = 1;

recuento de int privado = 0;

private int showType = GRID

private int pageMax

JButton privado último, siguiente, grande, cuadrícula

Biblioteca de imágenes pública(){

this.setTitle("Biblioteca de imágenes 0.1 ");

this.setBounds(100, 100, G_WIDTH, G_HEIGHT);

p>

this .setdefaultcloseoperative(JFrame . EXIT _ ON _ CLOSE);

toolBar = new JMenuBar();

chooser = nuevo selector de archivos j();

chooser.setCurrentDirectory(new java . io.File(" . "));

selector .

Solo directorio);

menu = new JMenu(" Archivo ");

toolBar.add(menu);

open = new JMenuItem(" abrir "). );

abrir .addactionlistener(this);

menu.add(abrir);

rutas = new ArrayList & ltstring& gt() ;

this.setJMenuBar(Barra de herramientas);

mostrando panel = nuevo JPanel();

panel de botones = nuevo JPanel();

último = nuevo JButton(" último ");

último. addactionlistener(este);

siguiente = nuevo JButton(" siguiente "); esto);

grande = nuevo JButton(" grande ");

grande . addactionlistener(este);

grid = nuevo JButton (" cuadrícula ") ;

cuadrícula . addactionlistener(this);

buttonPanel.add(último);

buttonPanel.add(grande);

buttonPanel.add(grid);

buttonPanel.add(siguiente);

this.add(buttonPanel, BorderLayout. South);

this add(. mostrando el panel);

este conjunto visible(true);

}

public void doOpen() {

int resultado = selector . showopendialog(null);

if (resultado == JFileChooser . APPROVE_OPTION) {

cadena directorio = selector getselectedfile().

getPath();

this.getAllImage(directorio);

for (String s: this.paths) {

system out. ;

}

esto. mostrando la imagen();

}

}

public void getAllImage( Directorio de cadenas) {

rutas .clear();

página = 1;

cuenta = 0

Archivo = Nuevo; archivo (directorio);

if (file.isDirectory()) {

cadena[]lista = archivo lista();

for (String s. : lista) {

cadena ruta = directorio+" \ \ "+s;

Temperatura del archivo = nuevo archivo (ruta); isDirectory()) {

this.paths.add(ruta);

}

}

}

}

Página de cambio de anulación pública (página int) {

if (! paths.isEmpty()) {

Cambiar (tipo de visualización) {< / p>

Cuadrícula de casos:

esta página += página;

if (esta.página == 0) {

esta página =. 1;

}

Si (esta.página & gtpageMax) {

esta.página = pageMax

}

Pausa;

Caso grande:

esta . cuenta+= página;

if(cuenta & lt; 0) {

cuenta = 0;

}

if(cuenta & gt; rutas.tamaño() - 1) {

cuenta = rutas tamaño() -. 1;

}

Romper;

}

esto muestra la imagen();

} <. /p>

}

public void mostrandoImagen() {

this remove(mostrando panel);

mostrando panel = new JPanel();

int tamaño = rutas tamaño();

int MAX = MAX _ R * MAX _ C

pageMax = (tamaño % max == 0; ? size/max:size/max+1);

Cambiar (tipo de visualización) {

Cuadrícula de casos:

this.setBounds(100, 100, G_WIDTH , G_HEIGHT);

showingPanel.setLayout(new GridLayout(MAX_R, MAX_C-1));

int I = (página-1)* max;

int j = página * max

for(;i<Johnson & Johnson.

&i<size;i++) {

ruta de cadena = rutas . get(I);

showingPanel.add(new ImagePanel(ruta));

}

Pausa;

Caso grande:

int izquierda = cuenta-1;

int derecha = cuenta+1

this.setBounds(100, 100, L_WIDTH, L_HEIGHT);

showingPanel.setLayout(new GridLayout(1, 2));

if (izquierda & gt; = 0). ) {

mostrando panel . add(nuevo panel de imagen(rutas . get(izquierda))

} En caso contrario {

showingPanel.add(nueva imagen). panel(" ");

}

mostrando panel add(new image panel(paths . get(count)));

if(right<size) {

mostrando panel . add(nuevo panel de imagen(paths . get(right)));

}else{

showingPanel.add(nuevo panel de imagen). (" ");

}

Break;

}

this.add (mostrandoPanel, BorderLayout. Center

mostrando panel .actualizar ui();

}

/**

* @ param args

* /

Public static void main(String[] args) {

//TODO fragmento de método generado automáticamente

Nueva galería de imágenes();

}

La clase ImagePanel extiende JPanel {

Imagen de icono de imagen privada;

ImagePanel (ruta de cadena) {

imagen = new ImageIcon(ruta);

}

Icono de imagen pública getImageIcon() {

Devolver esta imagen

}

@Overlay

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

// TODO método generado automáticamente Stub

g.drawImage(image.getImage (), 0, 0, this.getWidth(), this

.

getHeight(), this);

}

}

@override

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

//TODO código auxiliar de método generado automáticamente

string key = e. getactioncommand();

system out . p>if (key.equals("open")) {

doOpen();

} else if (key.endsWith("last")) {

cambiar página(-1);

} else if (key.endsWith("next")) {

cambiar página(1);

} else if(key . termina con(" grande ")){

if (!paths.isEmpty()) {

count = 0;

showType = LARGE

mostrando imagen();

}

} else if (key.endsWith("grid")) {

if (!paths.isEmpty()) {

página = 1;

showType = GRID

mostrando imagen();

}

}

}

}