Salir y volver a iniciar igual con la misma configuracion

  • 0 Respuestas
  • 2201 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ProcessKill

  • *
  • Underc0der
  • Mensajes: 154
  • Actividad:
    0%
  • Reputación 0
  • Arriba los hackers de Argentina!
    • Ver Perfil
    • Email
Este programa simple pero avanzado muestra como guardar la configuracion del  programa y al salir  iniciar las misma configuracion que dejaste
consta de un button reset para borrar la configuracion.



Código: Java
  1. //-----------------------------------------------------------
  2. /*
  3.    @author L-EYER
  4.    @see GlassFish Tools Bundle For Eclipse
  5.                        Version: 0.9.9
  6. */
  7. //----------------------------------------------------------
  8. import java.awt.Container;
  9. import java.awt.FlowLayout;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.WindowEvent;
  13. import java.awt.event.WindowListener;
  14. //----------------------------------------------------------
  15. import java.io.File;
  16. import java.io.FileNotFoundException;
  17. import java.io.FileOutputStream;
  18. import java.io.IOException;
  19. //----------------------------------------------------------
  20. import javax.swing.JButton;
  21. import javax.swing.JCheckBox;
  22. import javax.swing.JFrame;
  23. import javax.swing.JOptionPane;
  24. import javax.swing.JRadioButton;
  25. import javax.swing.SwingUtilities;
  26. import javax.swing.UIManager;
  27. import javax.swing.UIManager.LookAndFeelInfo;
  28. //----------------------------------------------------------
  29. import org.w3c.dom.DOMImplementation;
  30. import org.w3c.dom.Document;
  31. import org.w3c.dom.Element;
  32. import org.w3c.dom.Node;
  33. import org.w3c.dom.NodeList;
  34. import org.w3c.dom.Text;
  35. import org.xml.sax.SAXException;
  36. //----------------------------------------------------------
  37.  
  38. import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
  39. import com.sun.org.apache.xml.internal.serialize.OutputFormat;
  40. import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
  41.  
  42. public class ConfigGuard
  43. {
  44.    private static final long serialVersionUID = 1L;
  45.    
  46.    public static final String  nameFile="configuracion.xml";
  47.    public static final File    file=new File(nameFile);
  48.    
  49.    public    static  JButton     buttonGuard;
  50.    public    static  JButton        buttonReset ;
  51.    public    static  JCheckBox      check1;
  52.    public    static  JCheckBox      check2;
  53.    public    static  JRadioButton radioButton1;
  54.    public    static  JRadioButton radioButton2;
  55.    
  56.    public static void main(String[] args) {
  57.  
  58.    JFrame Frame    = new JFrame(" Salir he iniciar igual la configuracion ");
  59.    
  60.    LookAndFeelInfo[] LookAndFeel=UIManager.getInstalledLookAndFeels();
  61.    try {
  62.    UIManager.setLookAndFeel(LookAndFeel[3].getClassName() );
  63.    SwingUtilities.updateComponentTreeUI( Frame );
  64.    }catch (Exception e) {}
  65.    Frame.setLayout(new FlowLayout(FlowLayout.CENTER));
  66.        
  67.    buttonGuard      =   new javax.swing.JButton("Guardar");
  68.    buttonReset    =   new javax.swing.JButton("Reset");
  69.    check1           =   new JCheckBox("Config 1",false);
  70.    check2         =   new JCheckBox("Config 2",false);
  71.    radioButton1   =   new JRadioButton("RadioButton 1");
  72.     radioButton2   =   new JRadioButton("RadioButton 2");
  73.  
  74.     ConfigGuard.VerifyConfigurationSaved(Frame);
  75.      
  76.    final Container container  =   Frame.getContentPane();
  77.    container         .add(check1);      container         .add(check2);
  78.    container         .add(radioButton1); container         .add(radioButton2);
  79.    container           .add(buttonGuard);  container           .add(buttonReset);
  80.    
  81.    final listerner    listerner   = new listerner(Frame);
  82.     buttonGuard         .addActionListener( listerner );
  83.    buttonReset         .addActionListener( listerner );
  84.    
  85.    Frame.addWindowListener(new WindowListener() {
  86.       @Override public void windowOpened(WindowEvent e) {}
  87.       @Override public void windowIconified(WindowEvent e) {}
  88.       @Override public void windowDeactivated(WindowEvent e) {}
  89.       @Override public void windowClosing(WindowEvent e) {System.out.println("Exit");System.exit(0);}
  90.       @Override public void windowClosed(WindowEvent e) {}
  91.        @Override public void windowActivated(WindowEvent e) {}
  92.       @Override public void windowDeiconified(WindowEvent e) {
  93.       }
  94.       }
  95.     );  
  96.    Frame.setSize(400,100);
  97.    Frame.setLocationRelativeTo(new JFrame());
  98.    Frame.setVisible(true);
  99.    }
  100.    public static void VerifyConfigurationSaved(JFrame Frame)
  101.    {if( file.exists() ){
  102.          new InitConfig( true , Frame , nameFile );}
  103.    else{
  104.          new InitConfig( false , Frame , nameFile );}
  105.    }
  106. }
  107. class listerner implements ActionListener
  108. {
  109.    private JFrame GUI;
  110.    
  111.    public    Text    _C1 =   null;
  112.    public   Text    _C2 =   null;
  113.    public   Text    _R1 =   null;
  114.    public   Text    _R2 =   null;
  115.    
  116.    public listerner (JFrame frame){ GUI = frame;   }
  117.    @Override
  118.    public void actionPerformed(ActionEvent e) {
  119.       if(e.getActionCommand().equalsIgnoreCase("Guardar")){
  120.          
  121.       final DOMImplementation impl   = DOMImplementationImpl.getDOMImplementation();
  122.        final  Document XMLdoc          = impl.createDocument(null,"Configuracion",null);
  123.        
  124.        Element raiz = XMLdoc.getDocumentElement();
  125.       Element config=XMLdoc.createElement("Confifuracion");
  126.        
  127.       final OutputFormat out = new OutputFormat(XMLdoc);
  128.       XMLSerializer serializer;
  129.        
  130.       final Element _check1=XMLdoc.createElement("Check1_is_Select");
  131.       final Element _check2=XMLdoc.createElement("Check2_is_Select");
  132.       final Element _Radio1=XMLdoc.createElement("Radio1_is_Select");
  133.       final Element _Radio2=XMLdoc.createElement("Radio2_is_Select");
  134.          
  135.       if(ConfigGuard.check1.isSelected()){
  136.       _C1=XMLdoc.createTextNode("true");
  137.               _check1.appendChild(_C1);
  138.               config.appendChild(_check1);
  139.          }else{
  140.       _C1=XMLdoc.createTextNode("false");
  141.               _check1.appendChild(_C1);
  142.               config.appendChild(_check1);
  143.          }
  144.       if(ConfigGuard.check2.isSelected()){
  145.        _C2=XMLdoc.createTextNode("true");
  146.             _check2.appendChild(_C2);
  147.             config.appendChild(_check2);
  148.          }else{
  149.       _C2=XMLdoc.createTextNode("false");
  150.              _check2.appendChild(_C2);
  151.              config.appendChild(_check2);
  152.          }
  153.       if(ConfigGuard.radioButton1.isSelected()){
  154.       _R1=XMLdoc.createTextNode("true");
  155.             _Radio1.appendChild(_R1);
  156.             config.appendChild(_Radio1);
  157.          }else{
  158.       _R1=XMLdoc.createTextNode("false");
  159.             _Radio1.appendChild(_R1);
  160.             config.appendChild(_Radio1);
  161.          }
  162.       if(ConfigGuard.radioButton2.isSelected()){
  163.             _R2=XMLdoc.createTextNode("true");
  164.             _Radio2.appendChild(_R2);
  165.               config.appendChild(_Radio2);
  166.          }else{
  167.             _R2=XMLdoc.createTextNode("false");
  168.             _Radio2.appendChild(_R2);
  169.             config.appendChild(_Radio2);
  170.          }        
  171.          raiz.appendChild(config);
  172.           try {
  173.  
  174.              FileOutputStream fileOutputStream   = new FileOutputStream("configuracion.xml",false);
  175.              serializer                      = new XMLSerializer(fileOutputStream, out);
  176.             try {
  177.                serializer.serialize(XMLdoc);
  178.                
  179.                fileOutputStream.flush();
  180.                fileOutputStream.close();
  181.                
  182.                ConfigGuard.buttonGuard.setEnabled(false);
  183.      
  184.          } catch (IOException e1) {e1.printStackTrace();}
  185.          } catch (FileNotFoundException e1) {e1.printStackTrace();
  186.          } catch (Exception exception) {exception.printStackTrace();
  187.       }
  188.          JOptionPane.showMessageDialog(GUI,"Configuracion Cuargada Correctamente!","Guardar",JOptionPane.INFORMATION_MESSAGE);
  189.    }
  190.    if(e.getActionCommand().equalsIgnoreCase("Reset")){
  191.      
  192.       if(ConfigGuard.file.exists()){
  193.          ConfigGuard.file.delete();
  194.       }else{
  195.          JOptionPane.showMessageDialog(GUI,"Configuracion Borrada!","Reset",JOptionPane.INFORMATION_MESSAGE);
  196.       }
  197.          _C1=null;_C2=null;
  198.          _R1=null;_R2=null;
  199.    
  200.          ConfigGuard.buttonGuard      .setEnabled(true);
  201.          ConfigGuard.check1         .setSelected(false);
  202.          ConfigGuard.check2         .setSelected(false);
  203.          ConfigGuard.radioButton1   .setSelected(false);
  204.          ConfigGuard.radioButton2   .setSelected(false);
  205.       }
  206.    }
  207. }
  208. class InitConfig
  209. {
  210.    private final com.sun.org.apache.xerces.internal.parsers.DOMParser DOM
  211.    = new com.sun.org.apache.xerces.internal.parsers.DOMParser();
  212.    private JFrame parent;
  213.    public InitConfig( boolean FILEexists , JFrame frame, String file ) {
  214.    try {
  215.    parent   =   frame;
  216.       if( FILEexists ){
  217.                
  218.       DOM.parse(file);
  219.       Document doc=DOM.getDocument();
  220.                
  221.       NodeList _CK1= doc.getElementsByTagName("Check1_is_Select");
  222.       NodeList _CK2= doc.getElementsByTagName("Check2_is_Select");
  223.       NodeList _RD1= doc.getElementsByTagName("Radio1_is_Select");
  224.       NodeList _RD2= doc.getElementsByTagName("Radio2_is_Select");
  225.            
  226.          final Node c1=_CK1.item(0).getFirstChild();
  227.          final Node c2=_CK2.item(0).getFirstChild();
  228.          final Node r1=_RD1.item(0).getFirstChild();
  229.          final Node r2=_RD2.item(0).getFirstChild();
  230.          
  231.          if(c1.getNodeValue().equals("true"))
  232.             {ConfigGuard.check1.setSelected(true);
  233.            
  234.                }else{ConfigGuard.check1.setSelected(false);
  235.             }
  236.          if(c2.getNodeValue().equals("true"))
  237.             {ConfigGuard.check2.setSelected(true);
  238.            
  239.                }else{ConfigGuard.check2.setSelected(false);
  240.             }
  241.          if(r1.getNodeValue().equals("true"))
  242.             {ConfigGuard.radioButton1.setSelected(true);
  243.            
  244.                }else{ConfigGuard.radioButton1.setSelected(false);
  245.             }
  246.          if(r2.getNodeValue().equals("true"))
  247.             {ConfigGuard.radioButton2.setSelected(true);
  248.            
  249.                }else{ConfigGuard.radioButton2.setSelected(false);
  250.             }
  251.                }else
  252.             {
  253.             JOptionPane.showMessageDialog(parent,"No se ha Guardado Ninguna Configuracion.","Informacion",JOptionPane.INFORMATION_MESSAGE);
  254.             }
  255.          } catch (SAXException e) {e.printStackTrace();
  256.             System.exit(0);
  257.          } catch (IOException e) {
  258.             JOptionPane.showMessageDialog(new JFrame(),"Error al Leer el archivo.","<img src="https://underc0de.org/foro/Smileys/default/huh.gif" alt="???" title="Huh" class="smiley" /><img src="https://underc0de.org/foro/Smileys/default/huh.gif" alt="???" title="Huh" class="smiley" /><img src="https://underc0de.org/foro/Smileys/default/huh.gif" alt="???" title="Huh" class="smiley" /><img src="https://underc0de.org/foro/Smileys/default/huh.gif" alt="???" title="Huh" class="smiley" />??",JOptionPane.INFORMATION_MESSAGE);
  259.             e.printStackTrace();
  260.             System.exit(0);
  261.          }
  262.       }
  263.    }
  264.  
« Última modificación: Abril 18, 2013, 12:42:57 pm por Expermicid »