package pruebas;

public class Pruebas {

public static void main(String[] args) {

//https://www.youtube.com/watch?v=QIV7FfXa-zY

Empleados trabajador1 = new Empleados("Paco");
Empleados trabajador2 = new Empleados("Ana");
trabajador1.cambiarSeccion("RRHH");

System.out.println(trabajador1.devuelveDatos());
System.out.println(trabajador2.devuelveDatos());

System.out.println(trabajador1.devuelveDatosdos());
Empleados.Idsegunda++;
System.out.println(trabajador2.devuelveDatosdos());

// usamos la variable idsiguiente

Empleados trabajador3 = new Empleados("Felipe");
Empleados trabajador4 = new Empleados("Margarita");

System.out.println(trabajador3.devuelveDatostres());
System.out.println(trabajador4.devuelveDatostres());

}

}

class Empleados {

// private String nombre; <-- añadimos final porque no vamos a cambiar el nombre de la persona private final String nombre; private String seccion; private int Idprimera; // la ponemos public y static // se pone en cursiva porque es una variable DE CLASE // no pertenece a ningún objeto public static int Idsegunda; // todos tendrán idtercera, pero solo la clase tendrá idsiguiente private int Idtercera; private static int Idsiguiente=1; public Empleados(String nom){ nombre=nom; seccion="Administracion"; Idsegunda=1; // Usamos la variable de clase desde el constructor // ahora al crear los objetos, se incrementa sola Idtercera=Idsiguiente; Idsiguiente++; } public Empleados(String nom, int Id) { nombre=nom; seccion="Administracion"; this.Idprimera=Id; } public void cambiarSeccion(String seccion) { //setter this.seccion=seccion; } public String devuelveDatos() { return "El nombre es "+nombre+" y la sección es "+seccion+" y su id es "+Idprimera; } public String devuelveDatosdos() { return "El nombre es "+nombre+", la sección es "+seccion+" y su id es "+Idsegunda; } public String devuelveDatostres() { return "El nombre es "+nombre+", la sección es "+seccion+" y su id es "+Idtercera; } }

package ejemplojslider;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class EjemploJSlider extends JFrame implements ActionListener {

JLabel etiqueta;
JSlider js;

public EjemploJSlider() {

setVisible(true);
setBounds(0, 0, 600, 600);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);

etiqueta = new JLabel(«Hola»);

// clase FONT
// setFont(…..)

etiqueta.setFont(new Font(«Serif», Font.PLAIN, 15));

js = new JSlider(JSlider.HORIZONTAL, 1, 50, 15);

etiqueta.setBounds(10, 10, 300, 60);
js.setBounds(10, 110, 200, 60);

add(etiqueta);
add(js);

// Después de añadir el slider a la ventana
js.setMajorTickSpacing(10);
js.setMinorTickSpacing(1);
js.setPaintTicks(true);
js.setPaintLabels(true);

// esto es lo que hace que se cambie la letra
// dentro de addChangeListener
// – nótese que ahora no es addActionListener, como en los botones –
// creamos un new ChangeListener… el resto se autocompleta

js.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent ce) {

// el valor en tiempo real del indicador del slider,
// convertido a entero,
// pasado como parametro de Font – tamaño de fuente,
// y ésta pasada como parámetro de etiqueta

etiqueta.setFont(new Font(«Serif», Font.PLAIN, (int)((JSlider)ce.getSource()).getValue()));
}
} );

}

public static void main(String[] args) {

EjemploJSlider ejsl = new EjemploJSlider();

}

@Override
public void actionPerformed(ActionEvent ae) {

}

}

public class Formulario extends JFrame implements ActionListener{

private JLabel texto; // etiqueta o texto no editable
private JTextField caja; // caja de texto, para insertar datos
private JButton boton; // boton con una determinada accion

public Formulario() {

super();// usamos el contructor de la clase padre JFrame
config();
componentes();
}

private void config() {
this.setTitle(«Esta Es Una Ventana»); // colocamos titulo a la ventana
this.setSize(310, 210); // colocamos tamanio a la ventana (ancho, alto)
this.setLocationRelativeTo(null); // centramos la ventana en la pantalla
this.setLayout(null); // no usamos ningun layout, solo asi podremos dar posiciones a los componentes
this.setResizable(false); // hacemos que la ventana no sea redimiensionable
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // hacemos que cuando se cierre la ventana termina todo proceso
}

private void componentes() {
// creamos los componentes
texto = new JLabel();
caja = new JTextField();
boton = new JButton();
// configuramos los componentes
texto.setText(«Inserte Nombre»); // colocamos un texto a la etiqueta
texto.setBounds(50, 50, 100, 25); // colocamos posicion y tamanio al texto (x, y, ancho, alto)
caja.setBounds(150, 50, 100, 25); // colocamos posicion y tamanio a la caja (x, y, ancho, alto)
boton.setText(«Mostrar Mensaje»); // colocamos un texto al boton
boton.setBounds(50, 100, 200, 30); // colocamos posicion y tamanio al boton (x, y, ancho, alto)
boton.addActionListener(this); // hacemos que el boton tenga una accion y esa accion estara en esta clase
// adicionamos los componentes a la ventana
this.add(texto);
this.add(caja);
this.add(boton);
}

@Override
public void actionPerformed(ActionEvent e) {
String nombre = caja.getText(); // obtenemos el contenido de la caja de texto
JOptionPane.showMessageDialog(this, «Hola » + nombre + «.»); // mostramos un mensaje (frame, mensaje)
}
public static void main(String[] args) {
Formulario V = new Formulario(); // creamos una ventana
V.setVisible(true); // hacemos visible la ventana creada

}
}

package ejswing1;

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

/*

1 – Creamos 1 botón, con JButton
2 – Usamos setBounds
3 – lo metemos en el frame con .add
4 – añadimos «extends JFrame implements ActionListener» a la clase principal
5 – Usamos .addActionListener con el botón
6 – Autocompletar cuando proceda

*/

public class EjSwing1 extends JFrame implements ActionListener {

JFrame ventana = new JFrame();

JLabel label1 = new JLabel(«Etiqueta1»);
JLabel label2 = new JLabel(«Etiqueta2»);
JLabel label3 = new JLabel(«Etiqueta3»);

JButton botonsalir = new JButton(«Salir»);
JButton boton2 = new JButton(«Boton2»);
JButton boton3 = new JButton(«Boton3»);

JButton boton4 = new JButton();

public void graficos() {

ventana.setLayout(null);
ventana.setSize(600,600);
ventana.setVisible(true);

label1.setBounds(30, 0, 100, 50);
label2.setBounds(30, 50, 100, 50);
label3.setBounds(30, 100, 100, 50);

botonsalir.setBounds(130, 0, 100, 50);
boton2.setBounds(130, 50, 100, 50);
boton3.setBounds(130, 100, 100, 50);
boton4.setBounds(130, 150, 100, 50);

boton4.setText(«Cambiar»);

ventana.add(label1);
ventana.add(label2);
ventana.add(label3);

ventana.add(botonsalir);
ventana.add(boton2);
ventana.add(boton3);
ventana.add(boton4);

// al escribir «sleep» se me ha autocompletado la siguiente línea
// y también la parte del main «throws Interrumped…»
/*Thread.sleep(3000);
System.exit(0);*/

// después de «implements» y del action perfomed, debemos añadir esto
botonsalir.addActionListener(this);
boton4.addActionListener(this);

}

public static void main(String[] args) {

EjSwing1 nuevo = new EjSwing1();
nuevo.graficos();

}

@Override
public void actionPerformed(ActionEvent ae) {

if (ae.getSource()==botonsalir) {
System.exit(0);
}

if (ae.getSource()==boton4) {
label3.setText(«Nuevo texto»);
}

}

}

Crea un fichero de texto con el nombre y contenido que tú quieras. Luego crea una aplicación que lea este fichero de texto carácter a carácter y muestre su contenido por pantalla sin espacios. Por ejemplo, si un fichero tiene el siguiente texto “Esto es una prueba”, deberá mostrar “Estoesunaprueba”.

public class Archivos1 {

public static void main(String[] args) throws FileNotFoundException, IOException {

File archivo1 = new File(«C:\\Users\\Jorge\\Desktop\\archivotexto.txt»);
// BR 1 redLine()
Reader reader1 = new FileReader(archivo1);
//System.out.println((char)br1.read());
try (BufferedReader br1 = new BufferedReader(reader1)
// read() lee un caracter, pero lo devuelve como entero
/*
int michar= br1.read();
char minuevochar= (char)michar;
*/
) {
//System.out.println((char)br1.read());

int comprobacion = br1.read();

while (comprobacion!=-1) {

// comillas simples para caracteres

if ((char)comprobacion!=’ ‘) {

System.out.print((char)comprobacion);

}

comprobacion = br1.read();

}
} catch (IOException io) {
System.out.println(io);
}

}

}

Un array es un objeto que contiene un número fijo de valores de un solo tipo. La longitud del array se fija tras su creación.

Cada objeto en un array se llama elemento, y se accede a él mediante su índice numértico. Es decir, un elemento de un array tiene un índice (un número entero) y un valor. Hemos de recordar que el primer elemento de un array siemnpre tiene índice 0, con lo que el 4º elemento tiene índice 3…


public static void main(String[] args) {

// declarar un array de enteros
int[] arrayDeEnteros;
// allocates memory for 10 integers
arrayDeEnteros = new int[4];

// initialize elements
arrayDeEnteros[0] = 100;
arrayDeEnteros[1] = 200;
arrayDeEnteros[2] = 300;
arrayDeEnteros[3] = 400;

System.out.println("Element at index 0: "+ arrayDeEnteros[0]);
System.out.println("Element at index 1: "+ arrayDeEnteros[1]);
System.out.println("Element at index 2: "+ arrayDeEnteros[2]);
System.out.println("Element at index 3: "+ arrayDeEnteros[3]);

System.out.println(arrayDeEnteros.length);

byte[] arrayDeBytes;
short[] arrayDeShorts;
long[] arrayDeLongs;
float[] arrayDeFloats;
double[] arrayDeDoubles;
boolean[] arrayDeBooleans;
char[] arrayDeChars;
String[] arrayDeStrings = new String[4];

// bucles con array

//for (int i=0; i<=3; i++) { for (int i=0; i

Estructuras dinámicas. Uso de Stack y funciones básicas para usar pilas.

package javaapplication8;
import java.util.Stack;

public class JavaApplication8 {
static String p1=»primero»;
static Stack pilaf = new Stack<>();

public static void main(String[] args) {
Stack pila = new Stack<>();
String p2 = «segundo»;

// uso de push
pila.push(p1);
pila.push(p2);

// variable declarada dentro del método push
pila.push(«tercero»);
System.out.println(pila);

// uso de pop
pila.pop();
System.out.println(pila);

// uso de size
int tamano = pila.size();
System.out.println(«Tamaño de la pila: «+tamano);

// uso de peek
String x = pila.peek();
System.out.println(«Elemento de arriba de la primera pila: «+x);
System.out.println(«»);

// uso de empty
boolean vacio = pila.empty();
System.out.println(vacio);
System.out.println(«»);
pilaf.push(«Segunda pila, declarada fuera»);
System.out.println(pilaf);
System.out.println(«»);
}
}

Ejercicio

En este ejercicio solicitaremos una palabra desde la consola y la devolveremos invertida, usando una pila.

package ejercpila1;
import java.util.Stack;
import java.util.Scanner;

public class Ejercpila1 {
Stack pila = new Stack<>();
Scanner sc = new Scanner(System.in);

public void voltear() {
System.out.println(“Ecribe una palabra”);
String palabra = sc.next();

for (int i=0;i>palabra.length();i++) {
Character charr = palabra.charAt(i);
pila.push(charr);
}

while (pila.isEmpty()==false) {
Character a = pila.peek();
System.out.println(a);
pila.pop();
}
}

public static void main(String[] args) {

Ejercpila1 mipila = new Ejercpila1();
mipila.voltear();
}
}

Ejercicio parecido al anterior, donde se eliminan las vocales de la palabra.


import java.util.Stack;
import java.util.Scanner;

public class Ejercpila2 {

Stack pila = new Stack<>();

Scanner sc = new Scanner(System.in);

// este método pide el texto que vamos a modificar
// nótese que no está invocado dentro del método main

public void pedirtexto() {

System.out.println(" ");
String palabra = sc.next();

for (int i=0;i pilados = new Stack<>();
this.pedirtexto();

// vaciamos la pila

while (pila.isEmpty()==false) {

Character a = pila.peek();

if (a!='a' && a!='e' && a!='i' && a!='o' && a!='u') {

pilados.push(a);
System.out.println(a);

}
pila.pop();
}
}

public static void main(String[] args) {

Ejercpila2 mipila = new Ejercpila2();
mipila.quitarvocales();
}
}

Ejercicio con Queue (colas).
Llenamos una cola con números consecutivos.

package ejerccola1;
import java.util.PriorityQueue;
import java.util.Queue;

public class Ejerccola1 {

static Queue queueB = new PriorityQueue();
static int inicio=0, fin=10;
public static void main(String[] args) {

for (int i = inicio; i>fin;i++) {
queueB.add("B-"+i);
}

String primero;

while (queueB.isEmpty()==false) {

//while (queueB.poll()!=null) {

primero = queueB.element();
queueB.poll();
System.out.println(primero);

}
}
}