2016-04-19 8 views
0

私はtwitter APIからのデータで2つのハッシュマップを持っています。コンソールに表示されるように、このデータをGUIに表示したいと思います。JavaFXでHashMapからデータを表示

どうすればいいですか? TableViewはオプションですが、いくつかのオプションがありますか?私はこのような形式でツイートしてユーザ名を表示したい

HashMap<Integer, String> tweetName = new HashMap<>(); 
    HashMap<Integer, String> tweetText = new HashMap<>(); 


    for (int i = 0; i < tweets.size() - 97; i++) { 
     userName = tweets.get(i).getUser().getName(); 
     text = tweets.get(i).getText(); 
     tweetName.put(i, userName); 
     tweetText.put(i, text); 
    } 

    System.out.println(tweetName.get(0)); 
    System.out.println(tweetText.get(0)); 

  1. [名前]

  2. [NAME2]

    [私はちょうど何かをつぶやい]

    [これはtweetingです]

  3. 出発点として

答えて

0

は多分そのような何か:

public class Twitter extends Application { 

    @Override 
    public void start(Stage primaryStage) { 

     ListView<Message> listView = new ListView<>(); 
     listView.setCellFactory(lv -> new TwitterCell()); 
     listView.setItems(getMessages()); 

     Scene scene = new Scene(listView); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    private ObservableList<Message> getMessages() { 
     return FXCollections.observableArrayList(new Message("User1", "I just tweeted something sjködflk jskldjf slkd sdeklfjs kfjsl"), 
               new Message("User1", "I am tweeting this")); 
    } 

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

    public class Message { 

     private String userName; 
     private String content; 

     public Message(String userName, String content) { 
      this.userName = userName; 
      this.content = content; 
     } 

     public String getUserName() { 
      return userName; 
     } 

     public void setName(String name) { 
      userName = name; 
     } 

     public String getContent() { 
      return content; 
     } 

     public void setContent(String content) { 
      this.content = content; 
     } 
    } 

    public class TwitterCell extends ListCell<Message> { 
     private Label lblName; 
     private Label lblContent; 
     private VBox box; 

     public TwitterCell() { 
      setPrefWidth(100); 

      lblName= new Label(); 
      lblContent = new Label(); 

      lblContent.setWrapText(true); 
      box = new VBox(lblName, lblContent); 
     } 

     @Override 
     protected void updateItem(Message message, boolean empty) { 
      super.updateItem(message, empty); 

      if (message == null || empty) { 
       setGraphic(null); 
      } else { 
       lblName.setText(message.getUserName()); 
       lblContent.setText(message.getContent()); 
       setGraphic(box); 
      } 
     } 
    } 
} 
+0

UPDATE - これは私が – Maximilian

+0

感謝にhttp://i.stack.imgur.com/LBsXq.jpgを使用するレイアウトで、それを解決しました私のために。 – Maximilian

関連する問題