是否可以在JTable上安装JPanel

时间:2010-04-09 16:30:24

标签: java swing layout

我有一个JTable,其关联的TableModel最初可能为空。因此,它当前显示JTable的列,没有行。

为了填充此JTable,我希望用户从另一个组件中拖放元素。问题是我想提示用户他/她应该将元素拖到此表中,并使用一些消息,例如“在此处拖动xxx以添加行”

我认为我可以通过在JTable上放置一个面板来实现这一点,但我不认为任何java布局都可以实现。

有谁知道怎么做?或者我应该坚持CardLayout切换到提示和JTable?

非常感谢

3 个答案:

答案 0 :(得分:2)

看看OverlayLayout,我认为它可能会做你想要的。

答案 1 :(得分:1)

一些建议:

  • 使用JTablesetToolTipText(String)添加工具提示。您需要将其添加到周围的JScrollPane,以便在用户将鼠标悬停在空视口上时显示工具提示。
  • 添加标题Border;例如scrollPane.setBorder(BorderFactory.createTitledBorder("Drag items here"));

答案 2 :(得分:0)

我会这样做...创建一个JPanel来包含顶部的JTable和底部的JLabel。像这样......

JPanel container = new JPanel( new BorderLayout() );
container.add( table, BorderLayout.CENTER );
JLabel label = new JLabel( "Drag XXX here to add a row" );
container.add( table, BorderLayout.SOUTH );

然后制作标签和表格放置目标。您可能需要使用标签来使其外观和行为正确。将opaque设置为true可能吗?将其背景设置为白色以匹配表格?也许可以使用这三个边框来使它们看起来彼此集成。如果这是您想要的行为,则可以在添加第一行后删除标签。