Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 1mpuls0

#361
Java / Re: Como cambiar el fondo de un JTable
30 Agosto 2013, 20:04 PM
Dudo que no funcione, es el blog de Leyer el moderador de este subforo... algo debes hacer mal.

Edito:
Acabo de probar el código y funciona a la perfección.
Puede que sea el formato de imagen, el tamaño o la ruta lo que tienes incorrecto.

Saludos.
#362
JDShutdown v1
Descripción: Aplicación que permite establecer una hora y apagar el sistema una vez transcurrido el tiempo.
Autor: 1mpuls0

Entorno de desarrollo
IDE: Netbeans 7.01
JDK: 1.7.0
SO: Windows 7

Plataformas de prueba
Windows
Linux
Mac

Estoy tratando de mejorar y optimizar el código, solo se utilizan librerías propias de java.
Cualquier sugerencia o recomendación es bienvenida, así como también si tienen dudas pueden consultarlo.

Clase: JDShutdown
Código (java) [Seleccionar]

/*
* Autor: 1mpuls0
*/
package projects;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.JOptionPane;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.BorderFactory;
import java.awt.Font;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.util.Date;

import projects.date.DateTime;
import projects.actions.Shutdown;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class JDShutdown extends JFrame implements KeyListener, ActionListener  {
   
   private JPanel panelPrincipal;
   private JPanel panelCurrentDate;
   private JLabel labelCurrentDate;
   private JPanel panelLastDate;
   private JTextField textFieldDate;
   private JTextField textFieldTime;
   private JButton buttonStart;
   private JButton buttonCancel;
   private JPanel panelActions;
   private DateTime date;
   private Shutdown threadShutdown;
   
   
   public static void main(String args[]) {
       JDShutdown jds = new JDShutdown();
       jds.setVisible(true);
       jds.setLocationRelativeTo(null);
   }
   
   public JDShutdown() {
       panelPrincipal = new JPanel();
       panelCurrentDate = new JPanel();
       labelCurrentDate = new JLabel();
       panelLastDate = new JPanel();
       textFieldDate = new JTextField();
       textFieldTime = new JTextField();
       panelActions = new JPanel();
       buttonStart = new JButton();
       buttonCancel = new JButton();
       date = new DateTime();
       
       
       setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
       setTitle("JDShutdown V1");
       getContentPane().setLayout(new FlowLayout());
       setResizable(false);

       panelPrincipal.setLayout(new BorderLayout());

       panelCurrentDate.setBorder(BorderFactory.createTitledBorder("Fecha y hora de inicio"));

       labelCurrentDate.setFont(new Font("Tahoma", 0, 24));
       panelCurrentDate.add(labelCurrentDate);

       panelPrincipal.add(panelCurrentDate, BorderLayout.PAGE_START);

       panelLastDate.setBorder(BorderFactory.createTitledBorder("Fecha y hora de apagado"));
       
       textFieldDate.setColumns(10);
       textFieldDate.setText(date.getCurrentDate().substring(0, 10));
       textFieldDate.addKeyListener(this);
       
       textFieldTime.setColumns(10);
       labelCurrentDate.setText("--/--/---- --:--");
       textFieldTime.addKeyListener(this);
       
       panelLastDate.add(textFieldDate);
       panelLastDate.add(textFieldTime);
       //addDateMask();
       
       panelPrincipal.add(panelLastDate, BorderLayout.CENTER);

       panelActions.setBorder(BorderFactory.createTitledBorder("Acciones"));

       buttonStart.setText("Iniciar");
       buttonStart.addActionListener(this);
       panelActions.add(buttonStart);

       buttonCancel.setText("Cancelar");
       buttonCancel.addActionListener(this);
       buttonCancel.setEnabled(false);
       panelActions.add(buttonCancel);

       panelPrincipal.add(panelActions, BorderLayout.PAGE_END);

       getContentPane().add(panelPrincipal);
       
       addWindowListener(new AppAdapter());
       
       pack();
   }
   
   private void exit() {
       try {
           int salida = JOptionPane.showConfirmDialog(null, (char)191+"Desea salir?", "Salida", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
           if(salida == JOptionPane.YES_OPTION) {
               setVisible( false );
               dispose();
               System.exit(0);
           }
       } catch(NullPointerException npe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", npe);
       }
   }
   
   public void actionPerformed(ActionEvent evt) {
       Object src = evt.getSource();
       if (src == buttonStart) {
           String lastDate = textFieldDate.getText();
           textFieldTime.setText(date.completeTime(textFieldTime.getText()));
           String lastTime = textFieldTime.getText();

           if(date.isDateValid(lastDate)) {
               if(date.isTimeValid(lastTime)) {
                   Date currentDateTime = date.getCurrentDateTime();
                   Date lastDateTime = date.stringToDate(lastDate + " " + lastTime);
                   long milisecondsOfDifference = date.differenceTime(currentDateTime, lastDateTime);
                   if(milisecondsOfDifference > 6000 ) {
                       labelCurrentDate.setText(String.valueOf(date.getCurrentDate()));
                       buttonStart.setEnabled(false);
                       buttonCancel.setEnabled(true);
                       textFieldTime.setEditable(false);
                       threadShutdown = new Shutdown(milisecondsOfDifference);
                   } else {
                       labelCurrentDate.setText("--/--/---- --:--");
                       JOptionPane.showMessageDialog(null, "Verifica la hora.\n Coloca una hora con minimo un minuto de diferencia mas a la hora actual.", "Hora no valida", JOptionPane.WARNING_MESSAGE);
                   }
               }else {
                   labelCurrentDate.setText("--/--/---- --:--");
                   JOptionPane.showMessageDialog(null, "Verifica la hora", "Hora no valida", JOptionPane.ERROR_MESSAGE);
               }
           } else {
               labelCurrentDate.setText("--/--/---- --:--");
               JOptionPane.showMessageDialog(null, "Verifica la fecha", "Fecha no valida", JOptionPane.ERROR_MESSAGE);
           }
                   
       } else if (src == buttonCancel) {
           threadShutdown.stop();
           buttonStart.setEnabled(true);
           buttonCancel.setEnabled(false);
           textFieldTime.setEditable(true);
       }
   }
   
   public void keyTyped(KeyEvent evt) {
       Object src = evt.getSource();
       char caracter = evt.getKeyChar();
       if (src == textFieldDate) {
           if( ((caracter < '0') ||(caracter > '9')) && (caracter != '/') || textFieldDate.getText().length()== 10 )
               evt.consume();
           if((textFieldDate.getText().length()==2 || textFieldDate.getText().length()==5) && (caracter != '/'))
               evt.consume();
       } else if(src == textFieldTime) {
           if( ((caracter < '0') ||(caracter > '9')) && (caracter != ':') || textFieldTime.getText().length()== 8 )
               evt.consume();
           if((textFieldTime.getText().length()==2 || textFieldTime.getText().length()==5) && (caracter != ':'))
               evt.consume();
       }
   }
   
   public void keyPressed(KeyEvent evt) {      
   }
   
   public void keyReleased(KeyEvent evt) {      
   }
   
   class AppAdapter extends WindowAdapter {
       public void windowClosing(WindowEvent event) {
           exit();
       }
   }
}


Clase: DateTime
Código (java) [Seleccionar]

/*
* Autor: 1mpuls0
*/
package projects.date;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DateTime {
   
   private final String FORMAT = "dd/MM/yyyy HH:mm:ss";
   
   public long differenceTime(Date currentDate, Date lastDate) {
       long msDifference = 0;
       long msCurrentDate = currentDate.getTime();
       long msLastDate = lastDate.getTime();
       if(msLastDate>msCurrentDate)
           msDifference = Math.abs(msCurrentDate - msLastDate);
       return msDifference;
   }
   
   public Date getCurrentDateTime() {
       String currentDate;
       SimpleDateFormat dateFormat = new SimpleDateFormat(FORMAT);
       Date date = new Date();
       currentDate = dateFormat.format(date);
       try {
           dateFormat.parse(currentDate);
       } catch (ParseException ex) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", ex);
       }
       return date;
   }
   
   public String getCurrentDate() {
       String currentDate = "";
       SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
       Date date = new Date();
       try {
           currentDate = dateFormat.format(date);
           
       } catch(NullPointerException npe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", npe);
       }
       return currentDate;
   }
   
   public Date stringToDate(String strDate) {
       SimpleDateFormat format = new SimpleDateFormat(FORMAT);
       Date date = null;
       try {
           date = format.parse(strDate);
       } catch (ParseException pe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", pe);
       }
       return date;
   }
   
   public boolean isDateValid(String strDate) {
        try {
           DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
           df.setLenient(false);
           df.parse(strDate);
           return true;
       } catch (ParseException pe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", pe);
           return false;
       }
   }
   
   public boolean isTimeValid(String strDate) {
       try {
           DateFormat df = new SimpleDateFormat("HH:mm:ss");
           df.setLenient(false);
           df.parse(strDate);
           return true;
       } catch (ParseException pe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", pe);
           return false;
       }
   }
   
   public String completeTime(String strTime) {
       if(strTime.length()==4 && strTime.charAt(3)<'9') {
           strTime = strTime.substring(0, 3) + "0" + strTime.substring(3) + ":00";
       }
       
       if(strTime.length()==5) {
           strTime+=":00";
       }
       
       if(strTime.length()==7 && strTime.charAt(6)<'9') {
           strTime = strTime.substring(0, 6) + "0" + strTime.substring(6);
       }
       return strTime;
   }
}


Clase: OperatingSystem
Código (java) [Seleccionar]

package projects.information;

public class OperatingSystem {
   //The prefix String for all Windows OS.
   private static final String OS_NAME_WINDOWS_PREFIX = "Windows";
   
   //The {@code os.name} System Property. Operating system name.
   public static final String OS_NAME = getSystemProperty("os.name");
   //The {@code os.version} System Property. Operating system version.
   public static final String OS_VERSION = getSystemProperty("os.version");
   
   //Is {@code true} if this is AIX.
   public static final boolean IS_OS_AIX = getOSMatchesName("AIX");
   //Is {@code true} if this is HP-UX.
   public static final boolean IS_OS_HP_UX = getOSMatchesName("HP-UX");
   //Is {@code true} if this is Irix.
   public static final boolean IS_OS_IRIX = getOSMatchesName("Irix");
   //Is {@code true} if this is Linux.
   public static final boolean IS_OS_LINUX = getOSMatchesName("Linux") || getOSMatchesName("LINUX");
   //Is {@code true} if this is Mac.
   public static final boolean IS_OS_MAC = getOSMatchesName("Mac");
   //Is {@code true} if this is Mac.
   public static final boolean IS_OS_MAC_OSX = getOSMatchesName("Mac OS X");
   //Is {@code true} if this is FreeBSD.
   public static final boolean IS_OS_FREE_BSD = getOSMatchesName("FreeBSD");
   //Is {@code true} if this is OpenBSD.
   public static final boolean IS_OS_OPEN_BSD = getOSMatchesName("OpenBSD");
   //Is {@code true} if this is NetBSD.
   public static final boolean IS_OS_NET_BSD = getOSMatchesName("NetBSD");
   //Is {@code true} if this is OS/2.
   public static final boolean IS_OS_OS2 = getOSMatchesName("OS/2");
   //Is {@code true} if this is Solaris.
   public static final boolean IS_OS_SOLARIS = getOSMatchesName("Solaris");
   //Is {@code true} if this is SunOS.
   public static final boolean IS_OS_SUN_OS = getOSMatchesName("SunOS");
   
   //Is {@code true} if this is a UNIX like system, as in any of AIX, HP-UX, Irix, Linux, MacOSX, Solaris or SUN OS.
   public static final boolean IS_OS_UNIX = IS_OS_AIX || IS_OS_HP_UX || IS_OS_IRIX || IS_OS_LINUX || IS_OS_MAC_OSX
           || IS_OS_SOLARIS || IS_OS_SUN_OS || IS_OS_FREE_BSD || IS_OS_OPEN_BSD || IS_OS_NET_BSD;
   
   
   //Is {@code true} if this is Windows.
   public static final boolean IS_OS_WINDOWS = getOSMatchesName(OS_NAME_WINDOWS_PREFIX);
       
   //Gets a System property, defaulting to {@code null} if the property cannot be read.
   private static String getSystemProperty(String property) {
       try {
           return System.getProperty(property);
       } catch (SecurityException ex) {
           // we are not allowed to look at this property
           System.err.println("Caught a SecurityException reading the system property '" + property
                   + "'; the SystemUtils property value will default to null.");
           return null;
       }
   }
   
   //Decides if the operating system matches.
   private static boolean getOSMatchesName(String osNamePrefix) {
       return isOSNameMatch(OS_NAME, osNamePrefix);
   }
   
   //Decides if the operating system matches.
   static boolean isOSNameMatch(String osName, String osNamePrefix) {
       if (osName == null) {
           return false;
       }
       return osName.startsWith(osNamePrefix);
   }
   
   static boolean isOSMatch(String osName, String osVersion, String osNamePrefix, String osVersionPrefix) {
       if (osName == null || osVersion == null) {
           return false;
       }
       return osName.startsWith(osNamePrefix) && osVersion.startsWith(osVersionPrefix);
   }    
}



Clase: Shutdown
Código (java) [Seleccionar]

/*
* Autor: 1mpuls0
*/
package projects.actions;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

import projects.information.OperatingSystem;

public class Shutdown implements Runnable {
   
   private final Thread thread;
   private long timeDifference = 0;
   private OperatingSystem sys;

   public Shutdown(long timeDifference) {
       this.timeDifference = timeDifference;
       thread = new Thread(this);
       thread.start();
   }

   private void process(long time) {
       System.out.println("APAGATE!!!");
       String shutdownCommand = null;

       if(sys.IS_OS_AIX)
           shutdownCommand = "shutdown -Fh " + time;
       else if(sys.IS_OS_FREE_BSD || sys.IS_OS_LINUX || sys.IS_OS_MAC|| sys.IS_OS_MAC_OSX || sys.IS_OS_NET_BSD || sys.IS_OS_OPEN_BSD || sys.IS_OS_UNIX)
           shutdownCommand = "shutdown -h " + time;
       else if(sys.IS_OS_HP_UX)
           shutdownCommand = "shutdown -hy " + time;
       else if(sys.IS_OS_IRIX)
           shutdownCommand = "shutdown -y -g " + time;
       else if(sys.IS_OS_SOLARIS || sys.IS_OS_SUN_OS)
           shutdownCommand = "shutdown -y -i5 -g" + time;
       else if(sys.IS_OS_WINDOWS)
           shutdownCommand = "shutdown.exe -s -t " + time;
       
       try {
           Runtime.getRuntime().exec(shutdownCommand);
       }catch(IOException ioe) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", ioe);
           javax.swing.JOptionPane.showMessageDialog(null, "No se pudo apagar", "Comando no aceptado", javax.swing.JOptionPane.ERROR_MESSAGE);
       }
   }

   public void run() {
       try {
           thread.sleep(timeDifference);
           process(0);
       }
       catch (InterruptedException ie) {
           Logger.getLogger(getClass().getName()).log(
           Level.ALL, "Error...", ie);
       }
   }
   
   public void stop() {
       thread.stop();
   }
}
#363
Bases de Datos / Re: Programa para windows
30 Agosto 2013, 16:13 PM
Cita de: Brida en 30 Agosto 2013, 12:32 PM
Sí, exacto, era eso, muchas gracias :-)

¿Recomendáis uno de todos esos?

Bueno ya te mencionó Carloswaldo, depende para que sistema de gestión de bases de datos necesites:
MySQL
SQL Server
Oracle
#364
Bases de Datos / Re: Programa para windows
30 Agosto 2013, 05:05 AM
Creo que se refiere a una GUI de base de datos para permitir conexiones remotas a otro servidor.

Dentro de las que conozco estan SQLYog, Toad For Oracle, Toad For SQL, Navicat, Sql Server Management Studio, Mysql workbench.

Saludos.
#365
y si no hace tabulaciòn?  ;D ya no valida :p
pero puedes hacer la combinacion de las 2, una seria para detectar el evento de teclado y otra para el evento del mouse.

Saludos.
#366
Desarrollo Web / Re: Una sola funcion de ajax
30 Agosto 2013, 04:45 AM
Asì como lo tienes es lo mejor.
Recuerda la programaciòn orientada a objetos.

No quieras que a una funcion le pases dos parametros por ejemplo y dependiendo de eso te regrese el resultado de acuerdo a la operación.
#367
Pero por qué debería de fallar una vista?, si solo está "referenciando" a otras tablas, en todo caso son las tablas en donde hay inconsistencia.

Yo utilizo mucho  Trigger y Stored Procedure, Functions, Views y nunca he tenido problemas.
#368
 :¬¬ y cómo quieres que se te ayude si no defines bien el problema?.
Así sea de ofertas de otro tipo la diferencia entre las bases de datos puede ser abismal.

Saludos.
#369
@topomanuel
Conozco todo eso, gracias por tomarte la molestia. Tampoco es que sea un sabelotodo solo digo que ya lo había considerado.

Aquí mi duda mas en especifico era entre bits y bytes en transferencia de datos.

Ya comprendí mejor esa parte.

Pero ahora...


PD: Lo de los discos duros no fue mas que un timo de las empresas para poder timar a la gente ofreciendo por ejemplo 80GB cuando en realidad son 78.12GB...


Eso si lo sabía pero pasa igual con las velocidades de conexión a internet? (independientemente de que disminuya por el uso de otros protocolos)

Por ejemplo la velocidad de conexion de internet está asi.



Sabemos que:
1 Mbps = 1000 Kbps = 0.125 MB/s

Entonces:
100 Mbps = 100000 Kbps = 12.5 MB/s?

:¬¬
#370
Cita de: drvy en 29 Agosto 2013, 01:16 AM
Me refiero a que es mas común expresar los kilobits por segundo con ps en vez de /s. Precisamente para no confundirlos con los kilobytes. Igual que con los MB.

Pero entonces si yo escribo digamos en una tesis o algún documento 128 kb/s para referirme (sin mencionarlo en el documento) a 128 kilobits por segundos está mal?.

Pero cuál es la razón?, solo evitar confusión?

Bueno esto en cuanto a transferencia, pero entonces para la unidad si se puede decir:
1 kb (1 kilobit)
1 KB (1 kilobyte)

Pero para transferencia de información tiene que ser:
1 kbps (1 kilobit por segundo)
1 kb/s (1 kilobyte por segundo)

Entonces no es lo correcto hacer:
1 KBps (1 kilobyte por segundo) <- MAL

1 KB/s <- Si escribo esto que se supone que estoy dando a entender? (además de que soy un ignorante?)

Pensaba que por colocar la "B" como mayúscula (para el caso de transferencia) hacía la distinción para referirse a bit o byte.