Tips: atajos de teclado y plantilla de código de NetBeans

Los atajos de teclados nos permiten ganar tiempo al dejar que el IDE haga todo el trabajo por nosotros, al comenzar los primeros pasos, no es recomendable usarlos por practica y porque no se le llega a dar el ahorro de tiempo considerable.
Las pantillas de códigos nos permiten autocompletar una linea o método presionando "CTRL+ESPACIO" y dejar que el IDE nos muestre las sugerencias que tiene para ofrecernos y luego aceptamos presionando "ENTER".


Atajos

Ctrl+ X, Ctrl + C, Ctrl + v

Unos atajos muy conocidos y que funcionan en casi todo programa, CORTAR, COPIAR y PEGAR

Alt + Insert

Nos permite generar los métodos mas necesarios para nuestra clase:

Ctrl + Shift + I

Agrega la declaración de importación necesaria.

Ctrl + R

Renombramos. Al hacer doble click sobre un atributo o método lo seleccionamos, y al pulsar ctrl+R aparecerá un recuadro sobre nuestra palabra indicando que ahora es editable, simplemente comenzamos deletreando el nuevo nombre y veremos como cambia el nombre en todos los lugares en que este, si los hubiera dentro del proyecto. Finalizamos con enter.

Alt + Shift + M

Introducimos las lineas de códigos seleccionadas en un método:

Alt + Shift + F

Formatea las linea de código para que sean visualmente leibles.

Shift + F6

Ejecuta el proyecto principal.

Ctrl + F8

Agrega un BreakPoint en la linea en que nos encontremos.

Ctrl + Shift + F5

Ejecuta el modo Debugg del proyecto principal. Previamente hay que realizar BreakPoints sino seá muy parecido a "run"

Ctrl + Click izquierdo

Al mantener pulsado el Ctrl aparecerán como hypervinculo las clases, interfaces, objetos, métodos, atributos para redireccionarnos a la clase que pertenecen.


Ctrl + Espacio : Plantillas

psvm

public static void main(String[] args) {
}

sout

System.out.println("");

St

String

fori

for (int i = 0; i < arr.length; i++) {
Object arr = arr[i];
}

ifelse

if (true) {
} else {
}

trycatch

try {
} catch (Exception e) {
}

pu

public

pr

private

ir

import

ex

extends

re

retun

th

throws

tw

throw

st

static

su

super

fi

final

ab

abstract

Tips: GUI Building en NetBeans

En NetBeans y unicamente en netbeans, tenemos la posibilidad de construir nuestras ventanas con editor gráfico arrastrando y soltando, contenedores y componentes sobre un JFrame.

Para lo cual, unicamente, al crear nuestra clase java deberemos elegir el tipo JFrame Form en la categoria Swing GUI Form

Luego de elegir la clase del tipo JFrameForm, habra que darle el nombre a la clase y ubicarlo en el package correspondiente. Al crearse podremos reconocer 5 ubicaciones utiles:

  • Vista Fuente
    • Podremos ver siempre nuestro codigo en lineas java, esto es generado automaticamente por el IDE. Solo podremos modificar las lineas blancas, ya que las grises forman parte de la ventana automatica y al cambiar valores puede que termine no funcionando.
  • Vista Diseño
    • La vista, que por defecto se inicia, en la cual podremos "Diseñar" arrastrando y soltando los contenedores y componentes de la paleta
  • Vista Previa
    • Nos muestra como quedaria la ventana al ejecutarse. Aparenciendo la barra de titulo y botones. Es solo para el diseño, ya que no funcionan eventos de usuarios.
  • Pallete
    • El el listado de componentes y contenedores que podremos arastrar a nuestra ventana
  • Properties
    • La propiedades del componente o contenedor seleccionado para modificar. Al no tener nada selecionado por defecto nos da la propiedades del JFrame.


En cuestion de unos minutos, pude recrear, mas o menos, la calculadora de windows, solo en el diseño ya que no responde al pulsar algo

    Fue muy útil el editor
  • al crear tantos botones simplemente arrastrando.
  • al cambiarle el texto al boton, desde la propiedades.
  • al cambiarle el color, en foreground(color).
  • al cambiarle el tamaño de cada boton. en minimunSize/maximunSize
  • al cambiarle el margin (margin de los 4 lados sobretodo el de "+/-").

Quedara agregarles un listener para que respondan a los eventos de usuarios, pulsado sobre cada boton el boton derecho y se desplegara un menu en cual podremos asignarles un evento, y nos cambiara a la vista fuente para escribir el codigo que queremos que haga el o los metodos de cada Listener.
NOTA: al cambiar a la vista fuente, el editor me creo mas de 350 lineas de codigo para esta ventana, la cual es un poco engorrasa pero nada del otro mundo, sera cuestion de acostumbrarse a la forma donde simplemente se pone los eventos de ususario.

Tips: Modo Debugger - Depuracion en NetBeans

Al intentar crear un programa-aplicación se nos presentan 3 tipos de errores:

  • Errores de sintaxis:
    • Por ejemplo al tipear mal una sentencia, un problema que nuestra IDE facilmente detecta y nos advierte con una linea roja debajo y hasta suguiere como solucionarlo.
  • Errores en tiempo de ejecución:
    • Cuando la sintaxis esta bien puesta pero la máquina virtual no puede ejecutar nuestras operaciones porque se le pide algo que no puede hacer como por ejemplo mostrar un indice de un array por el cual no esta definido o asignarle a un objeto un espacio de memoria que es nulo en lugar de de asignarle al espacio nulo lo que vale el objeto en su definicion clase.
      Algunos problemas puede identificarlo el IDE o nos arroja el nombre del problema y estos se tratan con bloques try-catch
  • Errores de lógica
    • No hay errores de tipeo, no hay errores de ejecucion, pero "simplemente el programa no hace lo que yo quiero que haga".

Para este tipo de problema existe el debug (Depuración) que permite compilar, ejecutar el programa y pararlo cuando se lo indiquemos para poder analizar paso a paso los valores de las variables y objetos para poder detectar algun problema.

Para hacer uno o varios Breakpoint no hace falta ser rafa Nadal, basta con hacer click izquierdo sobre el número de la linea donde queremos que el programa se detenga para ver que valores obtiene cada variable del programa (Es siempre asi en cualquier IDE).
Luego podemos continuar el programa hasta el siguiente breakponit si lo hubiera o lo termina de ejecutar hasta el fin.


Me imagino que quiero crear una aplicacion que sume 2 números dados cualesquiera y soy tan jodido que en mi método en lugar de poner el signo de sumar "+", me distraigo y pongo el de restar "-", claramente despues de unas prueba noto que 2 y 2 son 0 en lugar de 4. Mi código es el siguiente:

  1. package Depurar;
  2.  
  3. import java.util.Random;
  4.  
  5. /* @author {Darío José Zubaray} */
  6.  
  7. public class Depurar {
  8.     public static void main(String[] args) {
  9.         System.out.println(sumar(5,6));
  10.     }
  11.     public static int sumar(int num1, int num2){
  12.         int aux = num1 - num2;
  13.         return aux;
  14.     }
  15. }
  • Hay que tener en cuenta que java ejecuta nuestro codigo linea tras linea, hasta que en alguna de ellas nombre metodos o variables y salta a esas linea de codigo par a luego seguir.
  • Tambièn podemos cambiar los valores de estas variables en tiempo de ejecución.

Tips: Como reproducir sonidos en java

Para poder reproducir sonidos en java, por ejemplo al presionar un boton, tendremos que agregar el siguiente método en alún lugar de nuestra clase:

  1.     public void ReproducirSonido(String nombreSonido){
  2.        try {
  3.         AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(nombreSonido).getAbsoluteFile());
  4.         Clip clip = AudioSystem.getClip();
  5.         clip.open(audioInputStream);
  6.         clip.start();
  7.          System.out.println("Error al reproducir el sonido.");
  8.        }
  9.      }

Luego dejamos que nuestro IDE arregle las importaciones necesarias

  1. import java.awt.FlowLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import javax.sound.sampled.AudioInputStream;
  7. import javax.sound.sampled.AudioSystem;
  8. import javax.sound.sampled.Clip;
  9. import javax.sound.sampled.LineUnavailableException;
  10. import javax.sound.sampled.UnsupportedAudioFileException;

Y ya simplmente ejecutamos el método pasando como parámetro un String con la dirección de directorio del archivo (solo lo he probado con archivos "wav").

Como antes es preferible contar con nuestro archivo dentro "TuEquipo / MisDocumentos/ NetBeansProjects/ TuProyecto/ Tupaquete" que va a ser el String del parametro para que se pueda encontrar y ejecutar el archivo.

Y Por ejemplo al crear una ventana con un boton que reproduzca algun sonido en particular(en la web hay cientos de paginas que brindan sonidos libres de derechos de autor para que puedan ser utilizados por cualquier usuario), en mi caso es un sonido de un disparo... el código es el siguiente:

  1. import java.awt.FlowLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import javax.sound.sampled.AudioInputStream;
  7. import javax.sound.sampled.AudioSystem;
  8. import javax.sound.sampled.Clip;
  9. import javax.sound.sampled.LineUnavailableException;
  10. import javax.sound.sampled.UnsupportedAudioFileException;
  11. import javax.swing.JButton;
  12. import javax.swing.JFrame;
  13.  
  14. public class Sonido extends JFrame implements ActionListener{
  15.     JButton boton1 = new JButton("Pulsame");
  16.     public Sonido(){
  17.         super("Pulse el boton");
  18.         setSize(400,80);
  19.         setLocationRelativeTo(null);
  20.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  21.         setLayout(new FlowLayout());
  22.         add(boton1);
  23.         boton1.addActionListener(this);
  24.         setVisible(true);
  25.     }
  26.     public static void main(String[] Dar10){
  27.         new Sonido();
  28.     }
  29.     public void ReproducirSonido(String nombreSonido){
  30.        try {
  31.         AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(nombreSonido).getAbsoluteFile());
  32.         Clip clip = AudioSystem.getClip();
  33.         clip.open(audioInputStream);
  34.         clip.start();
  35.          System.out.println("Error al reproducir el sonido.");
  36.        }
  37.      }
  38.     @Override
  39.     public void actionPerformed(ActionEvent e) {
  40.         if(e.getSource() == boton1){
  41.             ReproducirSonido("src/tiro.wav");
  42.         }
  43.     }
  44. }

El resultado visual es (no se llega a apreciar el momento de hacer click y escuchar el sonido, pero es asi)

Puedes escuchar y/o descargar el sonido que elegi puedes hacerlo en el siguiente en el enlace

Tips: Cómo poner un icono a una ventana JFrame

Este breve tutorial es para explicar como poner un icono propio en una ventana JFrame. Es aquel que vemos en la parte superior izquierda y tambien en la barra de tarea, generalmente en la parte inferior.
Por defecto nuestro IDE nos ejecuta el icono de aplicación java:

Antes de Comenzar vamos a necesitar tener nuestro icono de tamaño 16x16 en formato png:

Y ubicarlo, de ser posible para facilitar el código dentro del mismo paquete:

Cree un nuevo projecto: "Blog15" con un paquete y clase principal del mismo nombre.

Luego dentro del constructor de mi clase agrego estas 2 líneas de código:

  1. Image iconoPropio = Toolkit.getDefaultToolkit().getImage(getClass().getResource("carita.png"));
  2. setIconImage(iconoPropio);

Será necesario la importación de: "java.awt.*" para que "Image" y "toolkit" puedan funcionar correctamente.

Finalmente el código completo se verá asi:

  1. package blog15;
  2.  
  3. import java.awt.*;
  4. import javax.swing.*;
  5.  
  6. public class Blog15 extends JFrame {
  7.  
  8.     public Blog15(){
  9.         super("Cambiar Icono Personalizado");
  10.         setSize(400,100);
  11.         setLocationRelativeTo(null);
  12.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13.         Image iconoPropio = Toolkit.getDefaultToolkit().getImage(getClass().getResource("carita.png"));
  14.         setIconImage(iconoPropio);
  15.         setVisible(true);
  16.     }
  17.     public static void main(String[] args) {
  18.         new Blog15();
  19.     }
  20. }

Y el resultado final será:

Para hacerlo un poco mas divertido intentaremos hacer esto: la misma ventana JFrame pero con 2 botones que al ir presionandolos afectara al icono de la propia ventana.

  1. package blog15;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import javax.swing.*;
  7.  
  8. public class Blog15 extends JFrame implements ActionListener{
  9.  
  10.     JButton boton1 = new JButton("Personalizado");
  11.     JButton boton2 = new JButton("Estandar");
  12.     Image iconoPropio = Toolkit.getDefaultToolkit().getImage(getClass().getResource("carita.png"));
  13.  
  14.     public Blog15(){
  15.         super("Cambiar Icono Personalizado");
  16.         setSize(400,100);
  17.         setLocationRelativeTo(null);
  18.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19.         setLayout(new FlowLayout());
  20.         boton1.addActionListener(this);
  21.         boton2.addActionListener(this);
  22.         boton2.setEnabled(false);
  23.         add(boton1);
  24.         add(boton2);
  25.         setVisible(true);
  26.     }
  27.     public static void main(String[] args) {
  28.         new Blog15();
  29.     }
  30.  
  31.     @Override
  32.     public void actionPerformed(ActionEvent e) {
  33.         if(e.getSource() == boton1){
  34.             setIconImage(iconoPropio);
  35.             boton1.setEnabled(false);
  36.             boton2.setEnabled(true);
  37.  
  38.         }
  39.         if(e.getSource() == boton2){
  40.             setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClass().getName()));
  41.             boton1.setEnabled(true);
  42.             boton2.setEnabled(false);
  43.         }
  44.     }
  45. }

Java 25 de 2025