Java - Java Scene Builder

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java Scene Builder

Publicado por Josh (5 intervenciones) el 05/12/2018 12:22:41
Buenas tardes a ver si alguien me puede echar una mano...Estoy haciendo un ejercicio con Scene Builder, es sencillo, he creado un formulario donde de introducen campos como DNI, asignatura(combobox), nota y recuperación, y después de pulsar un botón guardar, se imprime la información en un listView.

Lo que quiero es abrir otro paquete en el proyecto para modularizar la interfaz gráfica de la aplicación, con el objeto de crear un componente personalizado que pueda ser útil en varias aplicaciones. El componente personalizado debe incluir tanto las etiquetas como los campos de texto de entrada, así como el botón guardar, quedando fuera del componente la tabla para el registro de calificaciones. Por lo tanto el formulario y el botón guardar por un lado y en otro paquete con otra vista fxml y su controlador el ListView.

La vista principal y la vista del ListView las he unido con <fx:include> pero no sé como hacer para programar el controlador de la vista del ListView para que imprima la información de entrada.

Antes cuando el formulario y el listView estaban en la misma vista lo tenía programado así y funcionaba...


public class FXMLDocumentController implements Initializable {
//Declaramos un ObservableList que va a tener todas las personas a visualizar en la tabla
private final ObservableList <Alumnos> datosTabla = FXCollections.observableArrayList();
@FXML private TextField txtalumno;
@FXML private ComboBox cmbomodulo;
@FXML private TextField txtnota;
@FXML private TextField txtrecup;
@FXML private Button btonGuardar;

@FXML private TableView Tablaalumnos ;
@FXML private TableColumn dniColum;
@FXML private TableColumn ModColum;
@FXML private TableColumn notaColum;
@FXML private TableColumn recColum;


@FXML
private void botonGuardar(ActionEvent event) { //programación botón guardar

if(txtalumno.getText().length()!=9 ){

JOptionPane.showMessageDialog(null, "El número de DNI es incorrecto", "Mensaje de Advertencia", JOptionPane.WARNING_MESSAGE);



}else{
if(txtnota.getText().matches("[0-9]") ){
if(txtrecup.getText().matches("[0-5]")){

Alumnos nuevoalumno = new Alumnos(txtalumno.getText(), cmbomodulo.getSelectionModel().getSelectedItem().toString(),Integer.parseInt(txtnota.getText()),Integer.parseInt(txtrecup.getText()));
datosTabla.add(nuevoalumno);

//Se inicializan los campos
txtalumno.setText(null);
cmbomodulo.getSelectionModel().select(0);
txtnota.setText(null);
txtrecup.setText(null);
}else{
JOptionPane.showMessageDialog(null, "Valor Incorrecto en el campo Recuperación", "Mensaje de Advertencia", JOptionPane.WARNING_MESSAGE);
}
} else{
JOptionPane.showMessageDialog(null, "Valor Incorrecto en el campo Nota", "Mensaje de Advertencia", JOptionPane.WARNING_MESSAGE);
}
}

}

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

//Creamos un arrayList de tipo ObservableList y añadimos los elementos de combobox
ObservableList <String> mods = FXCollections.observableArrayList("DI",
"AD","SGE","PMDM","PSP","EIE");

cmbomodulo.setItems(mods);
cmbomodulo.getSelectionModel().select(0);
Tablaalumnos.setItems(datosTabla);

//Asociamos las columnas con la tabla
dniColum.setCellValueFactory(new PropertyValueFactory<Alumnos,String>("dni"));
ModColum.setCellValueFactory(new PropertyValueFactory <Alumnos,String>("modulo"));
notaColum.setCellValueFactory(new PropertyValueFactory<Alumnos,String>("nota"));
recColum.setCellValueFactory(new PropertyValueFactory<Alumnos,String>("recuperacion"));
}

}

el botón guardar me debe enviar la información a listar en el otro controlador de la vista del ListView y eso es lo que no tengo claro como hacer....

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 358
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Java Scene Builder

Publicado por Nicolas (137 intervenciones) el 05/12/2018 12:40:24
Hola Josh.
En mi caso utilizo una clase con un patrón de diseño Singleton con el cual hago una sola instancia de la misma, luego ahí tengo las colecciones con las que trabajo en Memoria y si tu quieres también con BBDD.
No es complicado, solo un poco de diseño en la aplicación.
Cualquier duda o consulta te puedo ayudar.
Abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java Scene Builder

Publicado por Josh (5 intervenciones) el 08/12/2018 16:47:31
Ya tengo el array con la información, en el controlador del formulario, en realidad lo único que necesito es programar el controlador del ListView para poder coger esa información e imprimirla,

Alumnos nuevoalumno = new Alumnos(txtalumno.getText(), cmbomodulo.getSelectionModel().getSelectedItem().toString(),Integer.parseInt(txtnota.getText()),Integer.parseInt(txtrecup.getText()));
datosTabla.add(nuevoalumno);

El objeto alumno lo añado a datosTabla que es el observable list pero como lo llamo desde el controlador del ListView?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar