package jfilechooser;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Ejercicio1 {
public static void main(String[] args) {
// Crear y mostrar la ventana principal
MarcoFile miMarco = new MarcoFile();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.setVisible(true);
}
}
class MarcoFile extends JFrame {
public MarcoFile() {
// Configurar la ventana principal
setBounds(0, 0, 300, 300);
setTitle("Selección de archivo");
setResizable(false);
setLocationRelativeTo(null);
// Añadir el panel principal
LaminaFile miLamina = new LaminaFile();
add(miLamina);
}
}
class LaminaFile extends JPanel {
private JLabel labelRuta;
public LaminaFile() {
// Crear panel para el botón
JPanel panelBoton = new JPanel();
JButton botonAgregar = new JButton("Agregar");
botonAgregar.setFont(new Font(Font.SERIF, Font.BOLD, 14));
botonAgregar.setAlignmentX(Component.CENTER_ALIGNMENT);
// Añadir botón al panel
panelBoton.add(botonAgregar);
// Crear JFileChooser
JFileChooser cuadro = new JFileChooser();
// Crear JLabel para mostrar la ruta del archivo
labelRuta = new JLabel("Ruta del archivo: ");
labelRuta.setFont(new Font(Font.SERIF, Font.PLAIN, 12));
// Añadir ActionListener al botón
botonAgregar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Abrir el cuadro de diálogo para seleccionar un archivo
int resultado = cuadro.showOpenDialog(null);
if (resultado == JFileChooser.APPROVE_OPTION) {
// Obtener la ruta del archivo seleccionado y mostrarla en el JLabel
String ruta = cuadro.getSelectedFile().getAbsolutePath();
labelRuta.setText("Ruta del archivo: " + ruta);
} else if (resultado == JFileChooser.CANCEL_OPTION) {
// Mostrar un mensaje si se cancela la selección de archivo
JOptionPane.showMessageDialog(null, "Selección de archivo cancelada.", "Información", JOptionPane.INFORMATION_MESSAGE);
}
}
});
// Configurar layout y añadir componentes
setLayout(new BorderLayout());
add(panelBoton, BorderLayout.NORTH);
add(labelRuta, BorderLayout.SOUTH);
}
}