我有一个JTable
,其关联的TableModel
最初可能为空。因此,它当前显示JTable
的列,没有行。
为了填充此JTable
,我希望用户从另一个组件中拖放元素。问题是我想提示用户他/她应该将元素拖到此表中,并使用一些消息,例如“在此处拖动xxx以添加行”。
我认为我可以通过在JTable
上放置一个面板来实现这一点,但我不认为任何java布局都可以实现。
有谁知道怎么做?或者我应该坚持CardLayout
切换到提示和JTable?
非常感谢
答案 0 :(得分:2)
看看OverlayLayout,我认为它可能会做你想要的。
答案 1 :(得分:1)
一些建议:
JTable
向setToolTipText(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可能吗?将其背景设置为白色以匹配表格?也许可以使用这三个边框来使它们看起来彼此集成。如果这是您想要的行为,则可以在添加第一行后删除标签。