Realizar un programa con interfaz gráfica titulado
Librería que nos permita ingresar información de un libro como:
1. Titulo del libro
2. Edición
3. Precio
4. Clave
El programa deberá
guardar la información en un archivo de .txt en forma de caracteres, ademas deberá
mostrar la información de cada uno de los libros de manera simultanea.
Captura de muestra:
Clase Principal
Libreria:
package libreria;
//@author Oliver
//http://blog2000.blogspot.mx/
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Scanner;
// Clase PRINCIPAL
public class Libreria extends JFrame implements ActionListener {
private JMenuBar barra;
private JMenu menu1, menu2, menu3;
private JMenuItem submenu1, submenu2, submenu3;
private JLabel bienvenido;
private JLabel lbl1, lbl2, lbl3, lbl4;
private JTextField tituloL, edicion, precio, clave;
private JButton guardar, mostrar, limpiar, salir;
public Libreria()
{
barra = new JMenuBar();
barra.setBounds(0,0,615,30); //(x, y, width, height)
menu1 = new JMenu ("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Archivo</p></html>");
menu1.setForeground(new Color(0xFFFFFF));
menu2 = new JMenu("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Acciones</p></html>");
menu2.setForeground(new Color(0xFFFFFF));
menu3 = new JMenu("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Edición</p></html>");
menu3.setForeground(new Color(0xFFFFFF));
barra.add(menu1);
barra.add(menu2);
barra.add(menu3);
barra.setBackground(new Color(0x000000));
submenu1 = new JMenuItem("Salir");
submenu2 = new JMenuItem("Limpiar");
submenu3 = new JMenuItem("Mostrar");
menu1.add(submenu1);
menu2.add(submenu2);
menu2.add(submenu3);
// JLabel que agrega un TITULO PRINCIPAL
bienvenido = new JLabel("<html><p style="border-left: solid 10px #B40404; border-top: solid 10px #B40404; border-right: solid 10px #B40404; padding-left: 10px; padding-right: 10px;">LIBRERIA</p></html>");
bienvenido.setBounds(130, 30, 350, 100); // (x, y, width, height)
bienvenido.setFont(new Font("ALGERIAN", 0, 50));
bienvenido.setForeground(new Color(0x000000));
// JLabel que agrega un TEXTO
lbl1 = new JLabel("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Titulo del libro:</p></html>");
lbl1.setBounds(30, 40, 500, 200); // (x, y, width, height)
lbl1.setFont(new Font("Impact", 0, 30));
lbl1.setForeground(new Color(0x000000));
// JTextField que agrega un CAMPO DE TEXTO
tituloL = new JTextField("");
tituloL.setBounds(255, 125, 275, 30); // (x, y, width, height)
tituloL.setFont(new Font("Arial", 0, 20));
tituloL.setForeground(new Color(0x000000));
tituloL.setBackground(new Color(0xDDDDDD));
// JLabel que agrega un TEXTO
lbl2 = new JLabel("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Edicion:</p></html>");
lbl2.setBounds(30, 80, 500, 200); // (x, y, width, height)
lbl2.setFont(new Font("Impact", 0, 30));
lbl2.setForeground(new Color(0x000000));
// JTextField que agrega un CAMPO DE TEXTO
edicion = new JTextField("");
edicion.setBounds(165, 165, 365, 30); // (x, y, width, height)
edicion.setFont(new Font("Arial", 0, 20));
edicion.setForeground(new Color(0x000000));
edicion.setBackground(new Color(0xDDDDDD));
// JLabel que agrega un TEXTO
lbl3 = new JLabel("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Precio:</p></html>");
lbl3.setBounds(30, 120, 500, 200); // (x, y, width, height)
lbl3.setFont(new Font("Impact", 0, 30));
lbl3.setForeground(new Color(0x000000));
// JTextField que agrega un CAMPO DE TEXTO
precio = new JTextField("");
precio.setBounds(155, 205, 375, 30); // (x, y, width, height)
precio.setFont(new Font("Arial", 0, 20));
precio.setForeground(new Color(0x000000));
precio.setBackground(new Color(0xDDDDDD));
// JLabel que agrega un TEXTO
lbl4 = new JLabel("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Clave:</p></html>");
lbl4.setBounds(30, 160, 500, 200); // (x, y, width, height)
lbl4.setFont(new Font("Impact", 0, 30));
lbl4.setForeground(new Color(0x000000));
// JTextField que agrega un CAMPO DE TEXTO
clave = new JTextField("");
clave.setBounds(140, 245, 390, 30); // (x, y, width, height)
clave.setFont(new Font("Arial", 0, 20));
clave.setForeground(new Color(0x000000));
clave.setBackground(new Color(0xDDDDDD));
// JButton que agrega un BOTON
guardar = new JButton("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Guardar</p></html>");
guardar.setBounds(30, 300, 130, 30); // (x, y, width, height)
guardar.setFont(new Font("Arial", 0, 20));
guardar.setForeground(new Color(0xFFFFFF));
guardar.setBackground(new Color(0x000000));
guardar.setToolTipText("Pulsa para guardar");
// JButton que agrega un BOTON
mostrar = new JButton("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Mostrar</p></hmtl>");
mostrar.setBounds(170, 300, 130, 30); // (x, y, width, height)
mostrar.setFont(new Font("Arial", 0, 20));
mostrar.setForeground(new Color(0xFFFFFF));
mostrar.setBackground(new Color(0x000000));
mostrar.setToolTipText("Pulsa para mostrar");
// JButton que agrega un BOTON
limpiar = new JButton("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Limpiar</p></hmtl>");
limpiar.setBounds(310, 300, 130, 30); // (x, y, width, height)
limpiar.setFont(new Font("Arial", 0, 20));
limpiar.setForeground(new Color(0xFFFFFF));
limpiar.setBackground(new Color(0x000000));
limpiar.setToolTipText("Pulsa para limpiar");
// JButton que agrega un BOTON
salir = new JButton("<html><p style="border-left: solid 10px #B40404; padding-left: 10px;">Salir</p></html>");
salir.setBounds(450, 300, 130, 30); // (x, y, width, height)
salir.setFont(new Font("Arial", 0, 20));
salir.setForeground(new Color(0xFFFFFF));
salir.setBackground(new Color(0x000000));
salir.setToolTipText("Pulsa para salir");
guardar.addActionListener(this);
mostrar.addActionListener(this);
limpiar.addActionListener(this);
salir.addActionListener(this);
submenu1.addActionListener(this);
submenu2.addActionListener(this);
submenu3.addActionListener(this);
getContentPane().add(guardar);
getContentPane().add(mostrar);
getContentPane().add(limpiar);
getContentPane().add(salir);
getContentPane().add(lbl1);
getContentPane().add(lbl2);
getContentPane().add(lbl3);
getContentPane().add(lbl4);
getContentPane().add(bienvenido);
getContentPane().add(tituloL);
getContentPane().add(edicion);
getContentPane().add(precio);
getContentPane().add(clave);
getContentPane().add(barra);
add(Imagen1());
//Ventana GENERAL
setLayout(null);
setSize(615, 400); //(width, height)
setTitle("Formulario");
setLocationRelativeTo(null);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// JLabel que agrega una IMAGEN
private JLabel Imagen1() {
// Se crea el objeto JLabel
JLabel imagen = new JLabel(new ImageIcon("Libreria.png"));
// Le damos una ubicación dentro del Frame
imagen.setBounds(470, 40, 150, 100); //(x, y, width, height)
return imagen;
}
// Metodo Leer
public void Leer()throws IOException {
Scanner fileIn;
String line;
try{
fileIn = new Scanner(new FileReader("ArchRegistros.txt")); // csv, pdf, doc, ppt, txt, bat etc,.
while(fileIn.hasNextLine()){
line = fileIn.nextLine();
JOptionPane.showMessageDialog(null,line + "n");
}
fileIn.close();
}
catch(FileNotFoundException e) {
JOptionPane.showMessageDialog(null,"Error : " + e.getMessage());
}
}
// Metodo Guardar
public void Guardar()throws IOException {
try {
PrintWriter fileOut;
fileOut = new PrintWriter(new FileWriter("ArchRegistros.txt",true)); // csv, pdf, doc, ppt, txt, bat etc,.
String line = ("Titulo del libro: "+tituloL.getText()+""+" Edicion: "+edicion.getText()+""+" Precio: "+""+precio.getText()+""+" Clave: "+""+clave.getText());
fileOut.println(line);
setBackground(new Color(0x660000));
fileOut.close();
}
catch(IOException e) {
JOptionPane.showMessageDialog(null,"Error : " + e.getMessage());
}
}
public void actionPerformed (ActionEvent e) {
if (e.getSource().equals(submenu1)) {
System.exit(0);
}
if (e.getSource().equals(submenu3)) {
try {
Leer();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (e.getSource().equals(mostrar)) {
try {
Leer();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (e.getSource().equals(submenu2)) {
tituloL.setText("");
edicion.setText("");
precio.setText("");
clave.setText("");
}
if(e.getSource().equals(salir)) {
System.exit(0);
}
if(e.getSource().equals(limpiar)) {
tituloL.setText("");
edicion.setText("");
precio.setText("");
clave.setText("");
}
if(e.getSource().equals(guardar)) {
try {
Guardar();
}
catch (IOException e1) {
e1.printStackTrace();
}
}
}
//Main PRINCIPAL
public static void main(String[] args) {
//Objeto
Libreria x = new Libreria();
}
}