Seguidores

MIS WEBS



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

jueves, 22 de febrero de 2018

EJERCICIOS CON DISEÑOS MARCOS JAVA II



Buenas tardes continuamos complicándonos la vida con java. Sigo realizando mi calculadora. En este ejercicio he puesto puesto a la escucha los botones con números de la calculadora para que cuando toquemos en ellos aparezca en la consola, para el que utilicé un JTextField, el número presionado, en las siguientes practicas le iré dando funcionalidad.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class otroEjemplodelayout {
         public static void main (String[] asgs) {
              Marco123456789 Calculator = new Marco123456789();
              Calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              Calculator.setVisible(true);    
         }
}

class Marco123456789 extends JFrame{
     public Marco123456789() {
         setTitle("Practica de Calculadora");
         setBounds(300,100,350,400);
         Consola Calculadora = new Consola();
         add(Calculadora);
        
     }
    
}

class Consola extends JPanel implements ActionListener{
    
     public Consola(){
         setLayout(new BorderLayout());
          cuadro_texto =new JTextField ("0",10);
         cuadro_texto.setBackground(Color.magenta);
         cuadro_texto.setFont(new Font("Arial Black",Font.BOLD,35));
         //cuadro_texto.setLayout(new BorderLayout());
         add(cuadro_texto,BorderLayout.NORTH);

        
          Panel =new JPanel();
         Panel.setLayout(new GridLayout(5,4));     //creamos un array con los botones
JButton Botones_Calculo[] = {   
new JButton("0"),new JButton("1"),new JButton("2"),new JButton("3"),
new JButton("4"),new JButton("5"),new JButton("6"),new JButton("7"),
new JButton("8"),new JButton("9"),new JButton("+"),new JButton("-"),
new JButton("/"),new JButton("*"),new JButton("=")
                                                     };
                  
//utilizamos un for each para cargar los botones en la lamina y poner a la escucha los botones
     int n=0;
                  
     for (JButton i:Botones_Calculo) {
     Panel.add(Botones_Calculo[n]);
                        Botones_Calculo[n].addActionListener(this);
     n++;
                        }
                  
     add(Panel,BorderLayout.CENTER);          
                   }
//declaramos las variables fuera de la case para utilizarlas en ActionListener
      JPanel Panel;
      JTextField cuadro_texto;
      
         public void actionPerformed(ActionEvent e) {
//obtenemos el texto del botón getActionCommand()
     String entrada = e.getActionCommand();
//discriminamos los botones + - / …
if (entrada !="+" && entrada !="-" && entrada !="/" &&  entrada !="*" && entrada !="=")
                   cuadro_texto.setText(entrada);
                   }
}





Bueno parece que la calculadora va cogiendo forma, la iremos mejorando poco a poco:




Espero que os guste. Muchas gracias  todos/as

sábado, 6 de enero de 2018

COPIAR Y PEGAR IMÁGENES DENTRO DE UNA LAMINA DE UN FRAME



Podemos utilizar el método copyArea para copiar y pegar una imagen o zona del frame (marco).
• copyArea
public abstract void copyArea(int x, int y, int width, int height, int dx,
int dy)

Copia un área del componente por una distancia especificada por dx y dy. Desde el punto especificado por x e y, este método se copia hacia abajo y hacia la derecha. Para copiar un área del componente hacia la izquierda o hacia arriba, especifique un valor negativo para dx o dy. Si una parte del rectángulo de origen se encuentra fuera de los límites del componente, o está oscurecida por otra ventana o componente, copyArea no podrá copiar los píxeles asociados. El área omitida se puede actualizar llamando al método de pintura del componente.

Parametros:

x - la coordenada x del rectángulo fuente.
y - la coordenada y del rectángulo fuente.
width – ancho del objeto original.
height – alto del objeto original.
dx - la distancia horizontal para copiar los píxeles.
dy- la distancia vertical para copiar los píxeles.






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);
setBackground(Color.GRAY);
File ruta = new File("images2.jpg");
try { //tratamineto de excepciones, haz esto y si no catch
foto = ImageIO.read(ruta); 
} 
catch(IOException e) { 
JOptionPane.showConfirmDialog(null, "no esta la foto");
}
//escribimos la foto en nuestra lamina
g.drawImage(foto, 50, 50, null); 
g.copyArea(50, 50, 500, 170, 300, 120);
}
private Image foto;
}





Buscar este blog

Sandisk y Western Digital