2017-07-04 5 views
-2

J'ai une méthode ce qui me donne un message de messagerie Java [] retour. Maintenant, je vais montrer la chaîne du sujet, la chaîne from et la date de revenu dans une vue de table javafx. Si je clique sur une donnée dans le tableau, je vais essayer d'obtenir le texte de l'email du message dans un champ de texte. Je n'ai aucune idée de comment le réaliser.Javamail Message [] dans Javafx TableView

Répondre

1

Vous devez affecter les valeurs à TableView, y compris le courrier électronique, vous pouvez le masquer si vous le souhaitez. Créez ensuite un événement de souris dans le TableView pour obtenir le texte de l'e-mail et le définir sur le TextField.

public void printTable(TableView<ObservableList> table, String subject, String from, Date date, String email) { 

    //Data. 
    ObservableList<ObservableList> data = FXCollections.observableArrayList(); 

    //Columns. 
    javafx.scene.control.TableColumn col = new javafx.scene.control.TableColumn(); 
    col.setText("Subject"); 
    table.getColumns().addAll(col); 

    javafx.scene.control.TableColumn col2 = new javafx.scene.control.TableColumn(); 
    col.setText("From"); 
    table.getColumns().addAll(col2); 

    javafx.scene.control.TableColumn col3 = new javafx.scene.control.TableColumn(); 
    col.setText("Date"); 
    table.getColumns().addAll(col3); 

    javafx.scene.control.TableColumn col4 = new javafx.scene.control.TableColumn(); 
    col.setText("Email"); 
    table.getColumns().addAll(col4); 

    //Row. 
    ObservableList<String> row = FXCollections.observableArrayList(); 

    row.add(subject); 
    row.add(from); 
    row.add(date.toString()); 
    row.add(email); 

    //Adding the row to the data. 
    data.add(row); 

    //Setting the data of the table. 
    table.setItems(data); 

    //Hiding the email column. 
    table.getColumns().get(4).setVisible(false); 
} 

@FXML 
private void tablePressed() { 
    if(table.getSelectionModel().getSelectedItem() != null) { 
     String message = table.getSelectionModel().getSelectedItem().get(4).toString(); 
     textField.setText(message); 
    } 
}