import [Link].
BorderLayout;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class dibujandoConMouse extends JFrame{
public dibujandoConMouse() {
setTitle("Dibujo con Mouse");
setSize(900, 650);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
DibujoPanel panelDibujo = new DibujoPanel();
// Combo de colores
String[] colores = {"Negro", "Rojo", "Verde", "Azul", "Naranja"};
JComboBox<String> comboColores = new JComboBox<>(colores);
[Link](e -> {
String color = (String) [Link]();
[Link](color);
});
// Slider de grosor
JSlider barraGrosor = new JSlider(1, 20, 5);
[Link](true);
[Link](true);
[Link](5);
[Link](e -> [Link]([Link]()));
// Botón limpiar
JButton btnLimpiar = new JButton("Limpiar");
[Link](e -> [Link]());
// Panel superior de control
JPanel panelControl = new JPanel();
[Link](new JLabel("Color:"));
[Link](comboColores);
[Link](new JLabel(" Grosor:"));
[Link](barraGrosor);
[Link](btnLimpiar);
add(panelControl, [Link]);
add(panelDibujo, [Link]);
public static void main(String[] args) {
[Link](() -> new dibujandoConMouse().setVisible(true));
// Clase interna para almacenar cada trazo
static class Trazo {
Point punto;
Color color;
int grosor;
public Trazo(Point punto, Color color, int grosor) {
[Link] = punto;
[Link] = color;
[Link] = grosor;
// Clase del panel de dibujo
class DibujoPanel extends JPanel implements MouseListener, MouseMotionListener {
private [Link]<Trazo> trazos;
private Color colorActual = [Link];
private int grosorActual = 5;
public DibujoPanel() {
setBackground([Link]);
trazos = new ArrayList<>();
addMouseListener(this);
addMouseMotionListener(this);
public void setColor(String colorNombre) {
switch (colorNombre) {
case "Rojo": colorActual = [Link]; break;
case "Verde": colorActual = [Link]; break;
case "Azul": colorActual = [Link]; break;
case "Naranja": colorActual = [Link]; break;
default: colorActual = [Link]; break;
public void setGrosor(int grosor) {
[Link] = grosor;
public void limpiar() {
[Link]();
repaint();
@Override
protected void paintComponent(Graphics g) {
[Link](g);
for (Trazo t : trazos) {
[Link]([Link]);
[Link]([Link].x, [Link].y, [Link], [Link]);
@Override
public void mousePressed(MouseEvent e) {
agregarTrazo([Link]());
}
@Override
public void mouseDragged(MouseEvent e) {
agregarTrazo([Link]());
private void agregarTrazo(Point p) {
[Link](new Trazo(p, colorActual, grosorActual));
repaint();
@Override public void mouseReleased(MouseEvent e) {}
@Override public void mouseClicked(MouseEvent e) {}
@Override public void mouseEntered(MouseEvent e) {}
@Override public void mouseExited(MouseEvent e) {}
@Override public void mouseMoved(MouseEvent e) {}
}
import [Link].*;
import [Link].*;
import [Link].*;
public class usandoPestañasListener extends JFrame {
public usandoPestañasListener() {
setTitle("Ejemplo con JTabbedPane y Listeners");
setSize(500, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// Crear panel con pestañas
JTabbedPane panelPestañas = new JTabbedPane();
panelPestañ[Link]("KeyListener", crearPestanaKeyListener());
panelPestañ[Link]("ItemListener", crearPestanaItemListener());
panelPestañ[Link]("FocusListener", crearPestanaFocusListener());
add(panelPestañas);
private JPanel crearPestanaKeyListener() {
JPanel panel = new JPanel(new BorderLayout());
JLabel lblContador = new JLabel("Caracteres: 0");
JTextArea textArea = new JTextArea();
[Link](new KeyAdapter() {
public void keyReleased(KeyEvent e) {
int count = [Link]().length();
[Link]("Caracteres: " + count);
});
[Link](new JScrollPane(textArea), [Link]);
[Link](lblContador, [Link]);
return panel;
private JPanel crearPestanaItemListener() {
JPanel panel = new JPanel();
JLabel lblSeleccion = new JLabel("Selecciona una opción:");
JComboBox<String> comboBox = new JComboBox<>(new String[]{"Rojo", "Verde",
"Azul"});
JLabel lblResultado = new JLabel("Resultado: -");
[Link](e -> {
if ([Link]() == [Link]) {
[Link]("Resultado: Has seleccionado " + [Link]());
});
[Link](lblSeleccion);
[Link](comboBox);
[Link](lblResultado);
return panel;
private JPanel crearPestanaFocusListener() {
JPanel panel = new JPanel(new GridLayout(3, 1));
JLabel lblInstruccion = new JLabel("Ingresa tu nombre:");
JTextField txtNombre = new JTextField();
JLabel lblValidacion = new JLabel("");
[Link](new FocusAdapter() {
public void focusLost(FocusEvent e) {
if ([Link]().trim().isEmpty()) {
[Link]("El campo no puede estar vacío.");
[Link]([Link]);
} else {
[Link]("✓ Entrada válida.");
[Link](new Color(0, 128, 0));
});
[Link](lblInstruccion);
[Link](txtNombre);
[Link](lblValidacion);
return panel;
public static void main(String[] args) {
[Link](() -> new usandoPestañasListener().setVisible(true));
}
/*
Un panel de dibujo con MouseListener y MouseMotionListener.
Botones para:
Cambiar el color del lápiz.
Cambiar el grosor de las líneas.
Limpiar el dibujo.
Dibuja líneas con el mouse.
Botón para elegir color (JColorChooser).
Botón para cambiar grosor.
Botón para limpiar todo.
*/
import [Link].*;
import [Link].*;
import [Link].*;
import [Link];
public class DibujoInteractivo extends JFrame {
public DibujoInteractivo() {
setTitle("Pizarra de Dibujo Interactiva");
setSize(900, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
DibujoPanel panelDibujo = new DibujoPanel();
// Botones
JButton btnColor = new JButton("Cambiar Color");
JButton btnGrosor = new JButton("Cambiar Grosor");
JButton btnLimpiar = new JButton("Limpiar");
// Acciones de botones
[Link](e -> {
Color nuevoColor = [Link](this, "Elige un color",
[Link]());
if (nuevoColor != null) {
[Link](nuevoColor);
});
[Link](e -> {
String input = [Link](this, "Ingrese grosor (1 a 10):",
[Link]());
if (input != null) {
try {
int grosor = [Link](input);
if (grosor >= 1 && grosor <= 10) {
[Link](grosor);
} else {
[Link](this, "Debe estar entre 1 y 10.");
} catch (NumberFormatException ex) {
[Link](this, "Ingrese un número válido.");
});
[Link](e -> [Link]());
// Panel de botones
JPanel panelBotones = new JPanel();
[Link](btnColor);
[Link](btnGrosor);
[Link](btnLimpiar);
// Layout general
add(panelDibujo, [Link]);
add(panelBotones, [Link]);
setVisible(true);
public static void main(String[] args) {
[Link](DibujoInteractivo::new);
class DibujoPanel extends JPanel implements MouseListener, MouseMotionListener {
private final ArrayList<Trazo> trazos = new ArrayList<>();
private int xInicial, yInicial;
private Color colorActual = [Link];
private int grosorActual = 2;
public DibujoPanel() {
setBackground([Link]);
addMouseListener(this);
addMouseMotionListener(this);
}
protected void paintComponent(Graphics g) {
[Link](g);
for (Trazo t : trazos) {
Graphics2D g2 = (Graphics2D) g;
[Link]([Link]);
[Link](new BasicStroke([Link]));
[Link](t.x1, t.y1, t.x2, t.y2);
public void mousePressed(MouseEvent e) {
xInicial = [Link]();
yInicial = [Link]();
public void mouseDragged(MouseEvent e) {
int xFinal = [Link]();
int yFinal = [Link]();
[Link](new Trazo(xInicial, yInicial, xFinal, yFinal, colorActual, grosorActual));
xInicial = xFinal;
yInicial = yFinal;
repaint();
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {}
public void setColor(Color c) {
colorActual = c;
public void setGrosor(int g) {
grosorActual = g;
public int getGrosor() {
return grosorActual;
public Color getColor() {
return colorActual;
public void limpiar() {
[Link]();
repaint();
// Clase interna para representar un trazo
static class Trazo {
int x1, y1, x2, y2, grosor;
Color color;
Trazo(int x1, int y1, int x2, int y2, Color color, int grosor) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
[Link] = color;
[Link] = grosor;