2010-11-15 80 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