2010-11-15 185 views
3

如何在Java(tweetie)中创建类似如下的界面?在java中创建表格界面

alt text

我想用一个JTable一个列和自定义单元格,在它的图像...不知道如何做到这一点的,虽然。

+0

我可能会创建一个“语音气泡”并使用“GridBagLayout”来定位图像和气泡。 – aioobe 2010-11-15 18:47:48

回答

2

最简单的方法(我会这样做)将使用JPanel上的垂直BoxLayout。然后,每条推文将成为自己的JPanelTweetPanel extends JPanel),其中BorderLayout图片位于WEST,而推文文本位于CENTER中。

以下是我将如何布置餐厅面板之一。

public ResturantPanel extends JPanel { 

    public ResturantPanel(String name, String address, List<String> reviews, Icon icon){ 
     setLayout(new BorderLayout()); 
     JLabel iconLabel = new JLabel(theIcon); 
     JLabel nameLabel = new JLabel(name); 
     JLabel addressLabel = new JLabel(address); 
     JPanel southReviewPanel = new JPanel(); 
     southReviewPanel.setLayout(new BoxLayout(southReviewPanel, BoxLayout.Y_AXIS); 
     for (String review: reviews) { 
      southReviewPanel.add(new JTextArea(review)); 
     } 
     add(southReviewPanel); 
     add(iconLabel, BorderLayout.West); 
     JPanel northPane = new JPanel(); 
     northPane.setLayout(new BoxLayout(northPane, BoxLayout.Y_AXIS)); 
     northPane.add(nameLabel); 
     northPane.add(addressLabel); 
     add(northPane, BorderLayout.North); 
    } 
} 

请注意,这是完全写在这个编辑窗口。它会有一些错别字。此外,你将必须玩图标的大小,文字区域添加到southReviewPanelsouthReviewPanel,以获得一切你想要的样子。

然后,您会将一堆这些放在JPanelJScrollPane中,这样您就可以走了。

+0

我选择了我以前提出的问题的答案......如果你现在不介意帮助 – aherlambang 2010-11-16 02:40:47

+0

@Equinox。哇,好工作!你需要进一步澄清什么? – jjnguy 2010-11-16 03:13:30

+0

好..我其实不是在做twitter客户端。我有一个餐厅名称,地址,评论和图标列表,我想在一个单元格中显示..我想要的是一种格式,其左侧有图标,餐厅名称和面板旁边面板上的详细信息 – aherlambang 2010-11-16 21:07:09

3

如果您只打算使用一列,那么您可以使用JList并且它会更容易一些。但要回答您的问题,您需要create a cell renderer,可用于表示列表中的对象。渲染器将​​有一个方法(getListCellRendererComponent),该方法将返回可用于表示每个项目的Component