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 - MC.cover

#11
Java / Re: Ayuda cargar ComboBox JavaFX FXML
15 Diciembre 2016, 17:12 PM
Cita de: kingcreek en 15 Diciembre 2016, 10:18 AM
Tal vez diste mucho de la solucion, pues como he dicho en un post anterior no he trabajado con FXML, pero si el error te lo da al llenar el combobox lo que se me ocurre es aqui:
Código (java) [Seleccionar]
CmbCountry.getItems().add(pais.Nombre);

getItems().add() creo que lleva 2 argumentos, 1 es la posicion y 2 el valor. Prueba reemplazandolo de esta manera:
Código (java) [Seleccionar]

CmbCountry.getItems().addAll(pais.Nombre);

//o este en su defecto

CmbCountry.add(pais.Nombre);


Si estoy equivocado no dudes en decirlo para revisarlo, un saludo

Hola el error persiste yo creo que es que cuando se lanza el método loadCmb aun la visual no se termino de cargar.
Este es el error:
Código (java) [Seleccionar]
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
#12
Java / Ayuda cargar ComboBox JavaFX FXML
15 Diciembre 2016, 06:34 AM
Hola buena tengo un problema y es que quiero cargar un combobox con datos devueltos por una base de datos y hasta acá todo bien. La cosa es que al ejecutar el método el cual llenaría el combobox lanza error de compilacion porque el tiempo en el cual se lanzo el método no es el correcto.

Codigo:
Código (java) [Seleccionar]

public class FXMLDocumentRegisterController implements Initializable {

    @FXML
    private JFXComboBox<String> CmbCountry;

    @FXML
    private JFXButton BtnBack;

    @FXML
    void BtnBack_Clicked(ActionEvent event) throws IOException{
            Parent parent = FXMLLoader.load(getClass().getResource("FXMLDocumentLogIn.fxml"));
            Scene loginScene = new Scene(parent);
            Stage stage = (Stage)((Node) event.getSource()).getScene().getWindow();
                  stage.hide();
                  stage.setScene(loginScene);
                  stage.show();
    }
   
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        this.CmbCountry = new JFXComboBox<String>();//aca inicializo el combobox
        loadCmb();//aca ejecuto el metodo de carga del combobox
    }
   
    private void loadCmb(){//este metodo carga el combobox con los datos devueltos de la base de datos
        RepoPais repo = FabricaReposSQL.CrearRepoPais();
        Iterable<Pais> p = repo.FindAll();
for (Pais pais : p) {
            CmbCountry.getItems().add(pais.Nombre);
}
    }
   
}


Yo no veo el error, si me pueden ayudar se los agradecería mucho, soy nuevo en javaFX con FXML y es un poco mariante al inicio.
Desde ya muchas gracias. :)
#13
Java / Re: Ayuda JavaFX FXML
15 Diciembre 2016, 06:29 AM
Cita de: kingcreek en 15 Diciembre 2016, 04:15 AM
No he trabajado FXML pero prueba el siguiente esquema:
Login, presiona en registrar, llamas a la ventana de registrar con .show() y usas .hide() en la ventana de login.
Despues del registro, llamas a .close() en la ventana de registro y .show() a la de login.

Respecto a tu segunda duda, no sabria decirte, deberia descargarme el compilador y verlo.

Muchas gracias ya pude resolver. :)
#14
Java / Ayuda JavaFX FXML
15 Diciembre 2016, 00:54 AM
Hola muy buenas estoy practicando con JavaFx en FXML y tengo 2 ventanas la principal y una a la cual se accede haciendo click en un botón especifico de la primera ventana
la cosa esta en que quiero poder de la segunda ventana volver a la primera he intentado por un montón de medios y no he podido.
Ventana principal:
Al realizar click en el boton registrarse redirige a esta ventana:


Yo quiero que al darle click al botón volver vuelva a la ventana de LogIn.
Codigo de ventana principal:
Código (java) [Seleccionar]
public class frmLogIn extends Application{

    public Stage stage = new Stage();
   
    @Override
    public void start(Stage primaryStage) throws Exception {
        try {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocumentLogIn.fxml"));
       
        Scene scene = new Scene(root);
       
        stage.getIcons().add(new Image("/Imgs/User.png"));
        stage.setTitle("LogIn");
        stage.setResizable(false);
        stage.centerOnScreen();
        stage.setScene(scene);
        stage.show();
           
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
   
    public void CloseLogIn(){ stage.close(); }

    public static void main(String[]args){ launch(args); }


Codigo logica de ventana LogIn:
Código (java) [Seleccionar]
public class FXMLDocumentLogInController implements Initializable {
   
    @FXML
    protected JFXButton BtnLogIn;
   
    @FXML
    private JFXButton BtnSignUp;

    @FXML
    private JFXTextField TxtUser;
   
    @FXML
    private JFXPasswordField TxtPassword;
   
    @FXML
    void BtnLogIn_Clicked(ActionEvent event) {
           
    }
   
    @FXML
    void BtnSignUp_Clicked(ActionEvent event) {
        frmRegister regis = new frmRegister();
        Stage stage = (Stage) BtnLogIn.getScene().getWindow();
              stage.close();
                    regis.ShowRegister();
    }
   
    @Override
    public void initialize(URL url, ResourceBundle rb) {    }   


Codigo ventana Registrarse:
Código (java) [Seleccionar]
public class frmRegister {
   
   public Stage stage = new Stage();
   
    public void ShowRegister(){
        try {
            FXMLLoader loader = new FXMLLoader(FXMLDocumentLogInController.class.getResource("FXMLDocumentRegister.fxml"));
            Parent frmRegister = (Parent) loader.load();
           
            stage.getIcons().add(new Image("/Imgs/User.png"));
            stage.setTitle("Registro");
            stage.centerOnScreen();
            stage.setResizable(false);
            stage.setScene(new Scene(frmRegister));
            stage.show();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
       
    }
   
    public void CloseRegister(){
        stage.close();
    }
}


Codigo logica visual Registrarse:
Código (java) [Seleccionar]
public class FXMLDocumentRegisterController implements Initializable {

    @FXML
    private JFXComboBox<?> CmbCountry;

    @FXML
    private JFXPasswordField TxtRePassword;

    @FXML
    private JFXTextField TxtName;

    @FXML
    private JFXButton BtnRegister;

    @FXML
    private JFXTextField TxtLastName;

    @FXML
    private JFXPasswordField TxtPassword;

    @FXML
    private JFXTextField TxtUser;

    @FXML
    private JFXButton BtnBack;

    @FXML
    void BtnBack_Clicked(ActionEvent event) {
            //aca se encuentra mi problema
    }
   
    @FXML
    void BtnRegister_Clicked(ActionEvent event) {

    }
   
    @Override
    public void initialize(URL url, ResourceBundle rb) {    }   
   
}


ha y una cosa mas me podrían decir como separar el método main de la visual de LogIn ya he intentado pero me d error al compilar al retirarlo de esa clase y poniéndola en una nueva.
Bueno hasta aca lo que serian mis dudas espero me puedan ayudar.
Desde ya muchas gracias :)
#15
Java / Re: Ayuda con ComboBox
14 Diciembre 2016, 04:36 AM
Hola muchas gracias no me había dado cuenta de ese error tan tonto.
muchas gracias :)
#16
Java / Re: Bucle for each
13 Diciembre 2016, 20:55 PM
hola buenas lo que puedes hacer es hacer el for each y dentro comprobar si tu variable a caba vuelta es true o false ejemplo

Código (java) [Seleccionar]

for (Pais pais : p) {
if (pais != null) {
      //codigo que quieres ejecutar si la variable es verdadera
}else{
return; //un return; en un metodo void lo que hace es finalizar abruptamente el método impidiendo que este siga ejecutándose
}
}
#17
Java / Ayuda con ComboBox
13 Diciembre 2016, 20:42 PM
Hola muy buenas tengo un problema  y es el siguiente estoy haciendo una app de uso personal de practica nada mas y quiero llenar un combobox con los nombres de todos los países del planeta. A los nombres de los países ya los tengo en un a BD mysql.
y tengo estos métodos y clases:
                                           clase Pais
Código (java) [Seleccionar]

import java.sql.ResultSet;
import java.sql.SQLException;

public class Pais {

public Integer ID;
public String Iso;
public String Nombre;

public void Load(ResultSet result) throws NumberFormatException, SQLException{
if(result != null){
this.ID = Integer.parseInt(result.getString("id"));
this.Iso = result.getString("iso").toString();
this.Nombre = result.getString("nombre").toString();
}
}


                                           clase RepoPais con método findAll();
Código (java) [Seleccionar]
@Override
public Iterable<Pais> FindAll(){
Connection con;
Statement st;
ResultSet rs;
try {
con = BDUtils.getConnection();
st = con.createStatement();
rs = st.executeQuery(FindAll);
List<Pais> paises = new ArrayList<Pais>();
while(rs.next()){
Pais p = new Pais();
p.Load(rs);
paises.add(p);
}
return paises;
} catch (Exception e) {
return null;
}


                                            clase de la visual
la cual en el constructor inicializa los componentes de la visual y luego llama a un método nombrado loadCmb:

Código (java) [Seleccionar]

@SuppressWarnings("unused")
public void loadCmb(){
RepoPais repo = FabricaReposSQL.CrearRepoPais();
Iterable<Pais> p = repo.FindAll();
for (Pais pais : p) {
CmbCountry.addItem(p.iterator().next().Nombre.toString());
}
}

El problema reside en este ultimo método loadCmb que tendría que cargarme los nombres de los países devueltos por la base de datos pero en cambio me llena el comboBox con el nombre del primer país devuelto.
Dejo imagen para explicarme mejor.




Espero me puedan decir como puedo hacer para que vaya iterando entre la lista de los devueltos así se llena el comboBox con los países devueltos y no con solo uno. Desde ya muchas gracias :)
#18
Hola muy buenas tengo un pequeño problema y espero me puedan ayudar :) .
Empecemos explicando: Soy nuevo utilizando procesos en paralelo y desames.
Mi problema es el siguiente:

Tengo una ventana de LogIn en la cual quiero que cuando se le de a ingresar aparezca un ProcessRing(Estoy utilizando MahApps Metro en una app WPF) y el cual en segundo plano valla cargando la visual que sigue y cuando este termine de cargar el ProcessRing se detenga y desaparezca cerrando la visual y abriendo la otra. Para intentar hacer esto cree el siguiente código:

(Cabe aclarar que tambien quiero que mientras este el ProcessRing se la visual quede inutilizable)

Código (vb) [Seleccionar]
Imports System.ComponentModel
Imports MahApps.Metro.Controls
Imports MahApps.Metro.Controls.Dialogs

Public Class LogicLogIn : Inherits MetroWindow

    Dim bw As New BackgroundWorker

    Sub New()
        InitializeComponent()
        bw.WorkerReportsProgress = True
        AddHandler bw.DoWork, AddressOf bw_DoWork
        AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
    End Sub

    Private Sub BtnLogIn_Click(sender As Object, e As RoutedEventArgs) Handles BtnLogIn.Click
        If TxtUser.Text.Equals("") Or TxtPass.Password.ToString.Equals("") Then
            Me.ShowMessageAsync("Alerta", "Usuario o Contraseña incorrecta")
        Else
            Ring.Visibility = Visibility.Visible
            Ring.IsActive = True
            If Not bw.IsBusy = True Then
                bw.RunWorkerAsync()
            End If
        End If

    End Sub

    Private Sub bw_DoWork(sender As Object, e As DoWorkEventArgs)
        Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
        Dim menu As New LogicMainMenu()
        Me.Close()
        menu.ShowDialog()
    End Sub

    Private Sub bw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
        If e.Cancelled = True Then
            'si se cancela
        ElseIf e.Error IsNot Nothing Then
            'si hay algun error al hacerce la tarea en el hilo
            MsgBox(e.Error.Message.ToString)
        Else
            Ring.IsActive = False
            Ring.Visibility = Visibility.Hidden
        End If
    End Sub

End Class


La cosa esta que a la hora de ejecución cuando cumplo los valores de validación y le doy al botón aceptar aparece el ProcessRing se activa y me lanza un error.

Les dejo imágenes del programa:
Img 1


Img2


Img 3


Espero me puedan ayudar desde Ya muchas gracias :)
#19
muchas gracias :)
#20
Programación Visual Basic / Validaciones TextBox
28 Octubre 2016, 23:19 PM
Hola buenas lamento molestarlos miren tengo un pequeñísimo problema el cual es tengo un textbox el cual debe dejar escribir solo números y un punto para números decimales la cosa esta en que como tengo el código hasta el momento

no puedo ingresar:
                          - .423783 (lo cual esta bien)
pero si puedo ingresar:
                                 - 4...45 (lo cual esta mal)

yo lo que quiero es que no pueda ingresar mas de un punto en el textbox les dejo el codigo a continuación.

Código (vb) [Seleccionar]
Function ValidDigits(ByVal Digito As String, ByVal Texto As String) As Boolean
        Dim entero As Integer = CInt(Asc(Digito))
        Dim valorePermitidos As String = "1234567890."

        If entero = 8 Then
            ValidDigits = False
        Else

            If InStr(valorePermitidos, Digito) = 0 Or InStr(".", Digito) = 11 Then
                ValidDigits = True
                Beep()
            ElseIf IsNumeric(Texto) Then
                ValidDigits = False
            Else
                ValidDigits = True
                Beep()
            End If

        End If

        Return ValidDigits

    End Function


Desde ya muchas gracias :)