开发者

Activity Stream- Producing X amount of objects in a panel on app load

Just wondering if you could help wanting to produce an activity stream in Java, the idea was to have a JLabel and text area followed by a divider be displayed on a screen and then repeated X amount of times according to what data was in a database.

What I was wondering is how could I possibly repeat the placin开发者_如何学Cg the jlabel, text area, and diveder on the screen above the last rendered objects on the fly and all displayed correctly no matter the size of the text area of each set of object sort of like the image below.

Activity Stream- Producing X amount of objects in a panel on app load

Hope I made it clear as I could thanks


Just provide your own version of a JPanel containing all these things and place them in a scrollpane that will care about having a long list of these panels..

class MyPanel extends JPanel
{
  ImageIcon icon;
  JTextArea textArea;

  MyPanel(ImageIcon icon, String text)
  {
    this.icon = icon;
    this.setPreferredSize(/*max size of your panel */)
    textArea = new JTextArea(10, 50);
    textArea.append(text);

    //the default manager will be a flow layout for single jpanels
    this.add(icon);
    JScrollPane sp = new JScrollPane(textArea);
    sp.setPreferredSize(new Dimension(/* size of your text label */));
    this.add(new JScrollPtextArea);
  }
}

class MyContainer extends JFrame
{
  JPanel container;
  JScrollPane spContainer;

  MyContainer()
  {
     container = new JPanel()
     container.setGridLayout(100,1); //100 elements max
     spContainer = new JScrollPane(container);
     spContainer.setPreferredSize(/* max size of whole thing */)
     this.add(spContainer);
     pack();
  }

  void addElement(MyPanel panel)
  {
    container.add(panel);
    this.pack();
  }
}

It's not fully working (I just wrote it) but it should give you the idea..

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜