|
Mostrar Mensajes
|
Páginas: [1] 2 3 4 5
|
1
|
Programación / Java / Re: Variable FXML Null en JavaFX
|
en: 19 Abril 2014, 19:26 pm
|
Me han dicho que el problema viene dado porque estoy usando dos instancias de Movements, una en la clase principal y otra en el controlador y como no uso métodos estáticos no soy capaz de mantener el contenido de las variables. He probado este código: Controlador: public class FXMLDocumentController implements Initializable {
Movements movements = new Movements();
public Movements getMovements() { return movements; }
@FXML public Slider SpeedSlider; @FXML public Slider TurnsSlider;
@Override public void initialize(URL url, ResourceBundle rb) {
//Send GUI Information movements.GetSliders(SpeedSlider, TurnsSlider); }
} y Clase Principal: public class OpenPilot extends Application {
Movements movements;
@Override public void start(Stage stage) throws Exception { FXMLLoader fxmlLoader = new FXMLLoader(); Parent root = fxmlLoader.load(getClass().getResource("FXMLDocument.fxml"));
// get movements from via controller FXMLDocumentController controller = (FXMLDocumentController)fxmlLoader.getController(); movements = controller.getMovements();
Scene scene = new Scene(root);
scene.setOnKeyPressed(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent Key) { movements.GetKeys(Key); } });
stage.setScene(scene); stage.show(); }
/** * @param args the command line arguments */ public static void main(String[] args) { launch(args); }
} Pero en la clase principal alguna de estas dos líneas genera error: FXMLDocumentController controller = (FXMLDocumentController)fxmlLoader.getController(); movements = controller.getMovements(); El error no es detectado en un principio por netbeans pero al arrancar el programa en la consola del IDE me da lo siguiente: Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:367) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:894) at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56) at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at openpilot.OpenPilot.start(OpenPilot.java:35) at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837) at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) ... 1 more Exception running application openpilot.OpenPilot Java Result: 1
|
|
|
2
|
Programación / Java / Variable FXML Null en JavaFX
|
en: 19 Abril 2014, 17:10 pm
|
Buenas, Tengo una aplicación en JavaFX realizada por FXML mediante Modelo Vista Controlador. El tema es que quiero mover unos sliders con el teclado. Para ello en la clase principal pongo un KeyEvent para escuchar lo que acontece en el teclado. En la clase FXMLDocumentController que actúa de controlador creo las variables FXML de los sliders. Estas variables son pasadas a una tercera clase. Donde allí se modifican los sliders cuando se hace algún click. El problema es que cuando paso las variables de los sliders en la tercera clase se almacenan perfectamente pero a la hora de ejecutar el código que debería modificar los sliders que viene pasado de la clase principal cuando se hace click estás variables FXML son null. Aquí os dejo el código: Clase principal: public class OpenPilot extends Application { Movements Movements = new Movements(); @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root); scene.setOnKeyPressed(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent Key) { Movements.GetKeys(Key); } }); stage.setScene(scene); stage.show(); }
/** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } Aquí el controlador: public class FXMLDocumentController implements Initializable { Movements Movements = new Movements(); @FXML public Slider SpeedSlider; @FXML public Slider TurnsSlider;
@Override public void initialize(URL url, ResourceBundle rb) { //Send GUI Information Movements.GetSliders(SpeedSlider, TurnsSlider); } } Y por última la tercera clase llamada Movements: public class Movements { //Define Data Variables public double SpeedValue; public double TurnsValue; //Define GUI Variables private Slider SpeedSlider; private Slider TurnsSlider; public void GetSliders(Slider SpeedSlider, Slider TurnsSlider) { this.SpeedSlider = SpeedSlider; this.TurnsSlider = TurnsSlider; }
//Get Sliders public void GetKeys(KeyEvent Key) { System.out.println(Key.getCode()); System.out.println(SpeedSlider); Platform.runLater(new Runnable() { @Override public void run() { TurnsSlider.setValue(10); } }); }
}
|
|
|
4
|
Programación / Java / SetText JavaFX no funciona
|
en: 26 Marzo 2014, 21:54 pm
|
Buenas, Tengo cuatro archivos, en un proyecto de JavaFX FXML. El problema es que quiero hacer un settext pero me dice que la variable del TextField es null. El código es el siguiente. FXMLDocumentController: public class FXMLDocumentController implements Initializable { @FXML private TextField carlos; RXTX main = new RXTX(); @FXML private void handleButtonAction(ActionEvent event) { } @Override public void initialize(URL url, ResourceBundle rb) { main.initialize(); Thread t = new Thread() { public void run() { //the following line will keep this app alive for 1000 seconds, //waiting for events to occur and responding to them (printing incoming messages to console). try {Thread.sleep(1000000);} catch (InterruptedException ie) {} } }; t.start(); System.out.println("Started"); } } El RXTX, donde se ejecuta el settext(está al final) y donde funciona el thread anterior: public class RXTX implements SerialPortEventListener{
@FXML private TextField carlos; private String Temperature; SerialPort serialPort; /** The port we're normally going to use. */ private static final String PORT_NAMES[] = { "COM5" // Windows }; /** * A BufferedReader which will be fed by a InputStreamReader * converting the bytes into characters * making the displayed results codepage independent */ private BufferedReader input; /** The output stream to the port */ private OutputStream output; /** Milliseconds to block while waiting for port open */ private static final int TIME_OUT = 2000; /** Default bits per second for COM port. */ private static final int DATA_RATE = 57600;
public void initialize() { CommPortIdentifier portId = null; Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
//First, Find an instance of serial port as set in PORT_NAMES. while (portEnum.hasMoreElements()) { CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement(); for (String portName : PORT_NAMES) { if (currPortId.getName().equals(portName)) { portId = currPortId; break; } } } if (portId == null) { System.out.println("Could not find COM port."); return; }
try { // open serial port, and use class name for the appName. serialPort = (SerialPort) portId.open(this.getClass().getName(), TIME_OUT);
// set port parameters serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
// open the streams input = new BufferedReader(new InputStreamReader(serialPort.getInputStream())); output = serialPort.getOutputStream();
// add event listeners serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (Exception e) { System.err.println(e.toString()); } }
/** * This should be called when you stop using the port. * This will prevent port locking on platforms like Linux. */ public synchronized void close() { if (serialPort != null) { serialPort.removeEventListener(); serialPort.close(); } }
/** * Handle an event on the serial port. Read the data and print it. */ public synchronized void serialEvent(SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { String inputLine=input.readLine(); System.out.println(inputLine); GetData(inputLine); } catch (Exception e) { System.err.println(e.toString()); } } // Ignore all the other eventTypes, but you should consider the other ones. }
@FXML private void GetData(String Data) { if(Data.contains("Temperature")){ carlos.setText("Test"); } } } Y aquí tienes el principal archivo java: public class OPilot extends Application { @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); }
/** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }
|
|
|
5
|
Programación / Ingeniería Inversa / Archivo .key
|
en: 9 Mayo 2013, 15:34 pm
|
Buenas,
Estoy intendando crackear un programa. El activado genera un archivo serial.key que es como un id del hadware. En caso de que cambias de hadware hay que volver a activarlo. Con este archivo no tengo ningún problema, lo puedo abrir con el Notepad++ y todo perfecto.
Pero luego, tengo otro archivo .key. Este está cifrado, mi pregunta es como lo puedo descifrar y si una vez descifrado lo puedo abrir con el Notepad++ o necesito otro programa.
Saludos,
|
|
|
6
|
Programación / .NET (C#, VB.NET, ASP) / Error MYSQL Login
|
en: 29 Enero 2013, 18:33 pm
|
Buenas, Uso Visual Stuido Ultimate 2012. Y el MYSQL Connector v4 (el último). Tengo este código. Si necesitáis código anterior pedirlo: Dim sqlQuery = "SELECT * FROM Pilots Where License = '" + UsernameTextBox.Text + "' AND Password = '" + PasswordTextBox.Text + "' " Dim myCommand As New MySqlCommand() myCommand.Connection = connection myCommand.CommandText = sqlQuery myAdapter.SelectCommand = myCommand Dim myData As MySqlDataReader() myData = myAdapter.ExecuteReader() If myData.HasRows = 0 Then MsgBox("Invalid User/Password!") Else MainForm.Show() Me.Close() End If
Y me da estos errores: Error 1 'ExecuteReader' is not a member of 'MySql.Data.MySqlClient.MySqlDataAdapter'. E:\VARS Client\VARS Client\VARS Client\Login.vb 26 18 VARS Client
Error 2 'HasRows' is not a member of 'System.Array'. E:\VARS Client\VARS Client\VARS Client\Login.vb 28 12 VARS Client Me podéis ayudar?
|
|
|
7
|
Programación / .NET (C#, VB.NET, ASP) / Re: Conectar MYSQL con .NET
|
en: 29 Enero 2013, 15:52 pm
|
te podes conectar a MySQL en .NET usando el namespace Sytem.Data.Oledb sin usan ningun programa, yo lo uso asi para realizar opeaciones basicas de SQL y ningun problema, el Connector es en realidad mejor si queres hacer operaciones especificas del motor de mysql, esta optimizado para eso, pero si vas a hacer lo basico en SQL no hace falta.
Pero si uso el MYSQL connector lo necesitarán todos los equipos donde use el programa?
|
|
|
8
|
Programación / .NET (C#, VB.NET, ASP) / Conectar MYSQL con .NET
|
en: 28 Enero 2013, 21:10 pm
|
Buenas,
He estado viendo algunos tutoriales para hacer esto. Y me surgen algunas dudas.
¿En todos los equipos que utilice el programa necesito el MYSQL Connector?
Yo en el programa pongo la contraseña user... de la base de datos, si alguien me descompila el programa ¿obtendrá los estos datos?
|
|
|
9
|
Programación / .NET (C#, VB.NET, ASP) / Re: Realizar otra vez y dar el resultado del IF
|
en: 28 Enero 2013, 19:22 pm
|
Vale, ya lo he arreglado: He puesto donde llamo al Offset de conexión del programa esto: Dim parkBrakes As Offset(Of UShort) = New Offset(Of UShort)(&HBC8) 'Offset con el que llamo al programa Dim lastLights As Boolean 'Mas codigo del programa Private Sub FlighInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try Dim currentLights As Boolean currentLights = lights.Value(LightType.Landing) If currentLights <> lastLights Then lastLights = currentLights Dim Message2 As String = IIf(currentLights, "Landing Lights ON", "Landing Lights OFF") RichTextBox1.Text += Environment.NewLine & (Message2) End If Catch ex As Exception End Try End Sub Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged End Sub
Pero ahora tengo una duda. Por que si defino la variable lastLights dentro del Private Sub FlighInfo no funciona? Pasa el error anteriormente mencionado, se repite el mensaje varias veces.
|
|
|
10
|
Programación / .NET (C#, VB.NET, ASP) / Re: Realizar otra vez y dar el resultado del IF
|
en: 28 Enero 2013, 15:22 pm
|
No se si te he entendido bien, pero según entiendo lo que quieres lo puedes hacer con los codigos que te han dejado, y para evitar que siga escribiendo pienso que te vendría bien volver a poner la variable a FALSE, de esta forma solo escribiria una vez, a la espera de que el valor de la variable vuelva a cambiar. En el momento que cambia a TRUE vuelves a concatenar y a poner en FALSE la variable.
Un saludo
No puedo hacer eso porque entonces apagaría las luces del avión en el simulador. Cómo puedo hacer para que se ejecute una función cada vez que la variable cambia a True o False?
|
|
|
|
|
|
|