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 - RyogiShiki

#31
GNU/Linux / Re: Actualizar Ubuntu
6 Mayo 2013, 16:07 PM
el comando que necesitas es:
Código (bash) [Seleccionar]
sudo do-release-upgrade

Ten en cuenta que este tipo de actualizaciones suele ser tremendamente problemático y es posible que termines con un sistema con problemas de dependencias, o incluso inusable. Lo preferible es hacer una instalación limpia del sistema.
#32
Revisando el código por encima, noto que cuando haces que el panel tome foco (en la clase Nivel1) es precisamente cuando estás procesando un evento del teclado, Pero para procesar este evento debes tener el foco del panel antes. Basicamente el problema está en la linea 109 de la clase anidada Teclado dentro de Nivel1. El foco no debería pedirse al procesar un evento de teclado, debes usar otra manera para asignar el foco al panel. Por ejemplo implementando un MouseListener y llamando al método requestFocusInWindow() dentro de la implementación del método mouseEntered() es una forma de hacerlo.
#33
A continuación una solució un poco más genérica:
Código (cpp) [Seleccionar]
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string dataIn;
    bool dataEntered = false;

    while (!dataEntered)
    {
        cout << "Introduce un dato: ";
        getline(cin, dataIn);
        if (dataIn.empty())
        {
            cout << "Ningun dato fue ingresado" << endl;
        }
        else
        {
            dataEntered = true;
        }
    }

    // Si necesitamos el dato en un int, float, double...
    istringstream stringStream(dataIn);

    // Aqui puede ser un float, un int, un double....
    int v;
    if (!(stringStream >> v))
    {
        cout << "Error dato no numerico..." << endl;
        cout << "Raw Dato: " << dataIn << endl;
    }
    else
    {
        cout << "Raw Dato: " << dataIn << endl;
        cout << "Dato: " << v << endl;
    }

    return 0;
}



Documentación:
StringStreams
#34
Hola que tal.

Antes que nada revisando la documentación sobre KeyListeners encuentras la información que necestas. Sin embargo paso a explicar lo que sucede.

Cuando escuchas un evento de teclado sobre un componente, es necesario saber sobre que componente el evento va ser escuchado, por ejemplo, si tengo dos JPanel, y cada uno tiene su propio KeyListener, al abrir la aplicación y oprimir una tecla, el programa no sabrá a cual de los dos Listeners estoy haciendo referencia, por esta razón es necesario tener un mecanismo que permita identificar que componente debe procesar el evento, para esto se hace uso del Foco, si el primer panelpanel tiene el Foco, entences este responderá al evento, si el segundo lo tiene, el segundo lo hará. Lo que falta en tu código es un mecanismo efetivo para asignar el foco al componente determinado.

En primer lugar, el método: setFocusable(boolean b) no debería estar en el JFrame, sino más bien en el JPanel:
Código (java) [Seleccionar]
public Panel(){
       
       setBackground(Color.WHITE);
       addMouseListener(this);
       addKeyListener(this);
       setFocusable(true);
}


Ahora que nuestro Panel tiene la habilidad de obtener foco, debemos definir como debe hacerlo, en este caso lo haremos al hacer click sobre este, para esto simplemente agregamos una linea de código más al método sobreescrito mouseClicked(Event e):

Código (java) [Seleccionar]
public void mouseClicked(MouseEvent e){
       
       System.out.println("Hola mundo");
       requestFocusInWindow();        
}


En este momento al hacer click sobre el Panel este obtendrá el foco dentro de la ventana, ahora si oprimes alguna tecla, verás como los eventos son correctamente procesados.

PD: Usar requestFocusInWindow() envés de requestFocus(). El primero otorgará el foco al componente dentro de la ventana que se encuentre, el segundo robará el foco de otras ventanas que estén abiertas (como las de otros programas)

Espero sea de ayuda.

Saludos
#35
Esa es la representación de la lista. La lista crea una copia dentro de si misma. Una forma de comprobar esto es haciendo:

Código (python) [Seleccionar]
print(lista[5][0])
print(lista[5][1])
// ...
for item in lista[5]:
   print(item)


y veras que los elementos están en la lista que está dentro de la lista.
#36
Scripting / Re: Problema Script Ruby
30 Marzo 2013, 22:48 PM
Ese escript tiene muchos errores, que viendo tu post más reciente parece los has solucionado, pero si a alguien le interesa: Las urls de los argumentos del goto deben estar entre comillas, el script nunca va a funcionar porque nunca se abre el archivo html local sino que está intentando buscar la página en el navegador que dirige a Google....
#37
prueba con esto.

Código (ruby) [Seleccionar]

url = URI::encode(browser.url)
doc = Hpricot(open(url))


Si eso no funciona entonces con este otro:

Código (ruby) [Seleccionar]

url = CGI::escape(browser.url)
doc = Hpricot(open(url))

#38
No, con los cursos del SENA no te va a alcanzar para un trabajo. Lo mejor sería estudiar una carrera técnica/tecnológica o una profesional.

Saludos
#39
Tienes toda la razón, mea culpa. No lei bien el código.

Saludos
#40
Como hiciste con a debes instanciar tambien un objeto de clase B aList pertenece a la clase B:

Código (cpp) [Seleccionar]

A a;
B b;
a.someString = "Hola";
b.aList.push_back(a);


Saludos