/** Proyecto NETeus 1.0 Solange Ahumada Fierro 2073003-k */ import java.awt.event.*; import java.awt.*; import java.util.*; import javax.swing.*; import java.io.*; import java.beans.*; import java.lang.Object; public class Archivo extends JFrame { String nombres, linea, ip, especial, npc; int pto; StringTokenizer tokenizer; public static void main(String[] args) { SimpleFrame frame = new SimpleFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class SimpleFrame extends JFrame { String linea, nombres, ip, npc, especial; int pto; StringTokenizer tokenizer; public SimpleFrame() { setResizable(false); Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenAlto = screenSize.height; int screenAncho = screenSize.width; //centrar el frame y darle un tamaño adecuado setSize(screenAncho / 2, screenAlto / 2); setLocation(screenAncho / 4, screenAlto / 4); setTitle("NETeus 1.0"); //titulo frame //el menu JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu buscaMenu = new JMenu("Busqueda"); menuBar.add(buscaMenu); JMenu opcionMenu = new JMenu("Opciones"); menuBar.add(opcionMenu); JMenuItem ingresa = new JMenuItem("Ingresar elemento"); opcionMenu.add(ingresa); JMenuItem borra = new JMenuItem("Eliminar elemento"); opcionMenu.add(borra); JMenuItem porIp = new JMenuItem("Por IP"); buscaMenu.add(porIp); JMenuItem porPc = new JMenuItem("Por Nombre del PC"); buscaMenu.add(porPc); JMenuItem porPersona = new JMenuItem("Por User"); buscaMenu.add(porPersona); JMenuItem porPto = new JMenuItem("Por Punto de Red"); buscaMenu.add(porPto); JMenuItem porSpecial = new JMenuItem("Por Especialidad"); buscaMenu.add(porSpecial); buscaMenu.addSeparator(); porIp.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int contador=0; try { String ipvalue = JOptionPane.showInputDialog ("Ingrese la ip que busca"); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (ip.equals(ipvalue)) { contador++; break; } } if (contador==1) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "USER:" + " " + nombres + ", " + "AREA " + especial + ", " + "NOMBRE PC: "+ npc + ", " + "PUNTO " + pto, "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "La ip no ha sido encontrada", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } dis.close(); } catch(java.io.IOException ioex) { } } } ); porPc.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int contador=0; try { String pcvalue = JOptionPane.showInputDialog ("Ingrese el nombre del PC que busca"); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (npc.equals(pcvalue)) { contador++; break; } } if(contador==1) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "USER: " + nombres + ", " + "AREA " + especial + ", " + "ip: " + ip + ", " + "PUNTO " + pto, "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El nombre no ha sido encontrado", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } dis.close(); } catch(java.io.IOException ioex) { } } } ); porPersona.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int contador=0; try { String nvalue = JOptionPane.showInputDialog ("Ingrese el user que busca"); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (nombres.equals(nvalue)) { contador++; break; } } if (contador==1) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "ip: " + ip + ", " + "AREA " + especial + ", " + "NOMBRE PC: "+ npc + ", " + "PUNTO " + pto, "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El usuario no ha sido encontrado", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } dis.close(); } catch(java.io.IOException ioex) { } } } ); porPto.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int ptvalue; int contador=0; try { String pvalue = JOptionPane.showInputDialog ("Ingrese el Punto que busca"); ptvalue = Integer.parseInt(pvalue); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (pto==ptvalue) { contador++; break; } } if(contador==1) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "NOMBRE: " + nombres + ", " + "IP: " + ip + ", " + "AREA " + especial + ", " + "NOMBRE PC: "+ npc, "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El Punto no ha sido encontrado", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } dis.close(); } catch(java.io.IOException ioex) { } } } ); porSpecial.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int contador=0; try { String svalue = JOptionPane.showInputDialog ("Ingrese la especialidad de quien busca"); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (especial.equals(svalue)) { contador++; break; } } if (contador == 1) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "NOMBRE: " + nombres + ", " + "IP: " + ip + ", " + "NOMBRE PC: "+ npc + ", " + "PUNTO:" + pto, "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El dato no ha sido encontrado", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); } dis.close(); } catch(java.io.IOException ioex) { } } } ); ingresa.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { try { String inputValue = JOptionPane.showInputDialog ("Ingrese el nombre de usuario"); String inputValue2 = JOptionPane.showInputDialog ("Ingrese la especialidad"); String inputValue3 = JOptionPane.showInputDialog ("Ingrese el nombre del PC"); String inputValue4 = JOptionPane.showInputDialog ("Ingrese la ip"); String inputValue5 = JOptionPane.showInputDialog ("Ingrese el punto"); BufferedWriter dos = new BufferedWriter( new FileWriter("red.txt",true) ); PrintWriter salida = new PrintWriter(dos); String s = inputValue + " " + inputValue2 + " " + inputValue3 + " " + inputValue4 + " " + inputValue5; salida.println(s); salida.close(); } catch(java.io.IOException ioex) { } } } ); borra.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { int contador=0; try { String ipvalue = JOptionPane.showInputDialog ("Ingrese la ip del elemento que desea eliminar de la red"); FileInputStream is = new FileInputStream("red.txt"); //creo un flujo de entrada DataInputStream dis = new DataInputStream(is); //creo un flujo de información linea = dis.readLine(); while(linea != null)//mientras no llegue al final del archivo lo lee { tokenizer = new StringTokenizer (linea); nombres = tokenizer.nextToken (); especial = tokenizer.nextToken (); npc = tokenizer.nextToken (); ip = tokenizer.nextToken (); pto = Integer.parseInt(tokenizer.nextToken ()); linea= dis.readLine(); if (ip.equals(ipvalue)) { contador++; } else { BufferedWriter dos = new BufferedWriter( new FileWriter("temporal.txt", true) ); PrintWriter salida = new PrintWriter(dos); String s = nombres + " " + especial + " " + npc + " " + ip + " " + pto; salida.println(s); salida.close(); } } if (contador==0) { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El elemento no existía en la red", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); dis.close(); } else { Object[] options = {"OK"}; JOptionPane.showOptionDialog(null, "El elemento ha sido eliminado de la red", "Resultado", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); dis.close(); File antiguo = new File("temporal.txt"); File nuevo = new File("red.txt"); File nuevo2 = new File("red.txt"); nuevo.delete(); antiguo.renameTo(nuevo2); } } catch(java.io.IOException ioex) { } } } ); // add panel to frame ImagePanel panel = new ImagePanel(); BotonPanel panel2 = new BotonPanel(); Container contentPane = getContentPane(); contentPane.add(panel, BorderLayout.CENTER); contentPane.add(panel2, BorderLayout.SOUTH); } } class ImagePanel extends JPanel { public ImagePanel() { setBackground(Color.WHITE); // acquire the image image = Toolkit.getDefaultToolkit().getImage ("logo_redes.gif"); MediaTracker tracker = new MediaTracker(this); tracker.addImage(image, 0); try { tracker.waitForID(0); } catch (InterruptedException exception) {} } public void paintComponent(Graphics g) { super.paintComponent(g); if (image == null) return; int imageWidth = image.getWidth(this); int imageHeight = image.getHeight(this); // draw the image in the upper-left corner g.drawImage(image, 100, 50, null); } private Image image; } class BotonPanel extends JPanel { public BotonPanel() { //crear botones JButton boton1 = new JButton("Ayuda"); JButton boton2 = new JButton("Salir"); //agregar botones al panel add(boton1); add(boton2); boton2.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { System.exit(0); } } ); boton1.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { ; } } ); } }