Seguidores

MIS WEBS



Mostrando entradas con la etiqueta FRAME. Mostrar todas las entradas
Mostrando entradas con la etiqueta FRAME. Mostrar todas las entradas

miércoles, 10 de enero de 2018

CREAR UN CONTROLADOR DE ESTADOS DE UNA VENTANA java




Existe una interface que actúa cuando existe una modificación del estado de ventana sea cual sea (aumentar, minimizar, maximizar, cerrar…). WindowStateListener y recibe por parámetro el método WindowStateChanged(Windowevent e). Este método actuará cuando exista una modificación del estado de nuestra ventana.


Windowevent tiene dos métodos:
*      getNewState(): Obtener nuevo estado.

*      getOldState():Obtener anterior estado.



En el siguiente ejercicio vamos a hacer dos marcos, le incluiremos dos botones y un texto, cuando realicemos una acción de venta (cerrar, abrir, maximizar…) nos saltara un mensaje avisando de que hemos realizado una modificación en nuestra ventana.


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class practica_frame6 {
      public static void main (String[] arg) {
            Marco_100 Marco_1 = new Marco_100();
            Marco_100 Marco_2 = new Marco_100();
            Marco_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Marco_2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            Marco_1.setVisible(true);
            Marco_2.setVisible(true);
            Marco_1.setBounds(100,300,400,300);
            Marco_2.setBounds(500,300,400,300);
      }
}
class Marco_100 extends JFrame{
      public Marco_100() {
      ModificaEstado cambio = new ModificaEstado();
      Lamina10 l1 = new Lamina10();
      add(l1);
      addWindowStateListener(cambio);
      setVisible(true);
      }
}
class Lamina10 extends JPanel{
      public void paintComponent(Graphics g) {
            super.paintComponent(g);
            JButton cerrar = new JButton("CERRAR");
            JButton open = new JButton("open");
            Font Arial = new Font("Arial",Font.BOLD,20);
            add(cerrar); add(open);
           
            setBackground(Color.blue);
            g.setFont(Arial);
            g.setColor(Color.WHITE);
            g.drawString("texto 1", 100, 100);      
      }
}
__________________________________________________________________
///////cuando hagamos algo con nuestra venta ejecutara esto//////
__________________________________________________________________
class ModificaEstado implements WindowStateListener {     
      public void windowStateChanged(WindowEvent e) {
            JOptionPane.showMessageDialog(null,"VENTANA MODIFICADA");
      }
}

domingo, 7 de enero de 2018

CREAR UN BOTÓN EN UN A LAMINA DE UNA MARCO DE JAVA

       

Como crear un botón en java utilizando la clase JButton

   Un evento constituye un método para que una clase notifique a los usuarios de un objeto que algo interesante le sucede, como, por ejemplo, que se ha hecho clic en un control de una interfaz gráfica de usuario. Esta notificación se denomina provocar un evento, este evento desencadenará una acción.


        En este caso el evento es hacer clic, pero dependiendo de en qué botón hagamos clic la acción que se desencadena es diferente. No es lo mismo hacer clic en el botón de grabar de un formulario que hacer clic en el de cerrar. Pero el evento sí que es el mismo hacer clic.

Para programar en java eventos nos resultaran necesarios 3 objetos:
1. Que desencadenante de la acción (hacer clic, cerrar ventana, cargar el programa.. )

¿Cual es el OBJETO EVENTO?


2. Quien desencadena la acción (que botón toco el usuario, que venta cerro, que programa cerro…)

¿Cual es el OBJETO FUENTE?



3. Quién recibe la acción , cuando hagamos clic en el botón X sobre que objeto se desencadenara la acción(la ventana, el programa, el formulario, la impresora..)

OBJETO LISTENER implementa la interface ActionListener



Ejemplo.
Nosotros tenemos un formulario con un botón guardar y el usuario lo clica para cerrar el programa.
OBJETO EVENTO  =  Hacer clic
OBJETO FUENTE = El botón rojo, amarillo o azul
OBJETO LISTENER = La lamina
ACCIÓN = Modificar color de la lámina (setBackground)

Como crear un botón (button)


Para crear el botón en la lámina necesitamos la clase JBuuton, creamos un objeto de la clase JBuuton y con el método add() lo cargamos en el constructor;


class Lamina6 extends JPanel{
      
       private Image foto;
       JButton PrimerBoton= new JButton ("CERRAR");
      
       // constructor donde hacemos visible el boton
       public Lamina6() {
             add(PrimerBoton);
       }



Ejercicio:


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ddd {
      
       public static void main(String[] args) {
             Marco10 mimarco10 = new Marco10();
             mimarco10.setVisible(true);
             mimarco10.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
      
}

class Marco10 extends JFrame{
       public Marco10() {
             setTitle("ESTE ES NUESTRO MARCO");
             setBounds (700,300,500,300);
             Lamina colores = new Lamina();
             add(colores);
       }
      
}

class Lamina extends JPanel implements ActionListener{
       JButton botonAzul = new JButton("Azul");
       JButton botonRojo = new JButton("Rojo");
       JButton botonAmarillo = new JButton("Amarillo");
      
       public Lamina() {
             add(botonAzul);
             add(botonRojo);
             add(botonAmarillo);
             botonAzul.addActionListener(this);//el oyente es la lamina (this)
             botonRojo.addActionListener(this);
             botonAmarillo.addActionListener(this); 
       }
       public void actionPerformed(ActionEvent e) {
Object FUENTE = e.getSource();
            
             if (FUENTE == botonAzul) {setBackground(Color.blue);}
             else if (FUENTE == botonRojo) {setBackground(Color.RED);}
             else if (FUENTE == botonAmarillo) {setBackground(Color.YELLOW);}         
       }
}

También lo podríamos hacer así:

public void actionPerformed(ActionEvent e) {
              switch (e.getActionCommand()) {
                case "Azul":     setBackground(Color.blue);              break;
                case "Amarillo": setBackground(Color.yellow);      break;
                case "Rojo":            setBackground(Color.red);         break;
                default:             break;
                }
}

viernes, 5 de enero de 2018

INCLUIR Y MANIPULAR IMÁGENES DENTRO DE UN FRAME






Existe un tipo de variable llamado Image  que pertenece paquete java.awt y dos métodos pertenecientes a ella:


 getWhidth() : Ancho objeto imagen.
getHeigth() :  Alto objeto imagen.

Por otra parte nos resultará necesario utilizar la clase ImageIO (Image input object) que pertenece al paquete javax.imageio.ImageIO y el método 

read(): Con el que cargamos el archivo.

Y por último cargaremos nuestra imagen con Graphics  en el paquete java.awt) y el método

drawImage() : Escribe imagen.




import java.awt.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

public class practica5_frame {

       public static void main(String[] args) {
      
             Marco6 marco = new Marco6();
            
            
             marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             marco.setVisible(true);
      
       }
      
}

class Marco6  extends JFrame{
      
       public Marco6() {


setTitle ("marco con dibujos");
setBounds(400,200,700,400); 
Lamina6 lamina = new Lamina6();
add(lamina);
}
}



class Lamina6 extends JPanel{
       public void paintComponent(Graphics g) {
             super.paintComponent(g);
            
            
             try { //tratamineto de excepciones, haz esto y si no catch
             foto = ImageIO.read(new File("images2.jpg"));
             }
             catch(IOException e) {
                    JOptionPane.showConfirmDialog(null, "no esta la foto");
             }
            
             //escribimos la foto en nuestra lamina
             g.drawImage(foto, 50, 50, null); 

}
private Image foto;
}



ESTE SERÁ EL RESULTADO:



DAR COLOR A TEXTOS Y FONDOS DE UNA MARCO (FRAME)



En primer lugar vamos a definir los colores. Tenemos los colores RGB (Red, Green, Blue). Todos los colores parten de la combinación de estos tres colores.


Nombre
Red (rojo)
Green (verde)
Blue (azul)
white
255
255
255
lightGray
192
192
192
gray
128
128
128
drakGray
64
64
64
black
0
0
0
red
255
0
0
pink
255
175
175
orange
255
200
0
yellow
255
255
0
green
0
255
0
magenta
255
0
255
cyan
0
255
255
blue
0
0
255




Para crear un objeto de la clase Color, se pasan tres números a su constructor que indican la cantidad de rojo, verde y azul.

Color ROSA = new Color(255, 175, 175);

Mediante la función setColor, cambiamos color con el que dibujamos una línea, un texto o rellenamos una figura cerrada en el contexto gráfico g.

        g.setColor(Rosa);


También disponemos de los colores predeterminados.


Color.white
Color.black
Color.yellow
Color.lightGray
Color.red
Color.green
Color.gray
Color.pink
Color.magenta
Color.darkGray
Color.orange
Color.cyan
Color.blue




g2d.setColor(Color.BLACK);





Podemos establecer color fondo del marco:


class panel1 extends JPanel{
      
       public void paintComponent(Graphics g) {
             super.paintComponent(g);
             setBackground(Color.BLACK);
}


Establecer color fondo letra


En el siguiente ejemplo crearemos una lámina para nuestro marco de color negro y escribiremos texto dentro de diferentes colores, el marco se centrará en la pantalla y sonara un beep al abrirse.


import java.awt.*;
import javax.swing.*;
public class practica4_panel {


public static void main(String[] args) {
            
             marco5 m = new marco5();
             m.setForeground(Color.BLACK);
             m.setVisible(true);       
       }
}

class marco5 extends JFrame{      

public static void main(String[] args) {

public marco5() {
             //poner marco en el centro de la pantalla
             Toolkit centrar = Toolkit.getDefaultToolkit();
             Dimension Tpantalla = centrar.getScreenSize();
       int alto=Tpantalla.height; int ancho=Tpantalla.width;             
       setTitle("tercer marco");
       setBounds(ancho/4,alto/4,ancho/2,alto/2); //establece centro
       Toolkit.getDefaultToolkit().beep();//que pite al salir
       //poner foto
       Image fotoCabecera = centrar.getImage("ARCHIVO.gif");
       setIconImage(fotoCabecera);
      
       panel1 p= new panel1();
       add(p);
      
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // cerrar
       }
}
class panel1 extends JPanel{     

public void paintComponent(Graphics g) {
             super.paintComponent(g);
             setBackground(Color.BLACK);
             //BIBLIOTECA 2D// hacemos una refundición de Graphics
             Graphics2D g2d = (Graphics2D) g;

              Font letraTitulo = new Font("Arial Black",Font.BOLD,20);
             Font letraCuerpo = new Font("arial",Font.PLAIN,10);
            
             g2d.setFont(letraTitulo);
             g2d.setColor(Color.WHITE);
             g.drawString("TITULO",250,50);         
             g2d.setFont(letraCuerpo);
             g2d.setColor(Color.CYAN);

                g.drawString( "TEXTO 1", 100, 100);
g.setColor(Color.YELLOW);
g.drawString( "TEXTO 2", 100, 120);
g.setColor(Color.GREEN);
g.drawString( "TEXTO 3", 100, 140);
}
}


resultado:




Buscar este blog

Sandisk y Western Digital