现在我有两张数据表格,其中的字段一致,现在我想从一张表格上把数据拖到另一张表格上(其中第二张数据表上没有数据记录)。我现在只有在第二张表上也有数据的时候可以实现拖放操作,如果一条记录也没有的话,拖上去的时候,鼠标还是表示着不能放的状态,请问有什么解决方案(不能追加一空白行)。希望能够给个例子。用了JTable table = new JTable() {
public boolean getScrollableTracksViewportHeight() {
return true;
}
};
之后可以解决上面的问题,但是这样的话即使数据很多,滚动条也不会自动出现,有什么解决办法,能否给个例子。
或有其他更好的解决办法。

解决方案 »

  1.   

    private JScrollPane getCorrespondTablePane() {
            String[][] correspondData = new String[0][6];        //表格模式
            DefaultTableModelmodel = new DefaultTableModel(correspondData,
                    new String[]{"割当", "客先名", "据付地"}) {
                public boolean isCellEditable(int row, int column) {
                    return false;
                }
            };
            model.setOrderArray(correspondMap);
            correspondTable = new JTable(model){
                    public boolean getScrollableTracksViewportHeight() {
                        return true;
                    }
                };
    //        correspondTable.addMouseListener(this);
            correspondTable.setDragEnabled(true);
            correspondTable.setName("2");
            correspondTable.setTransferHandler(new StringTransferHandler(this));
            correspondTbPanel = new JScrollPane(correspondTable);
            correspondTbPanel.setPreferredSize(new Dimension(1024, 200));
            //设置表格的对齐方式,和表格列的宽度。
            //SwingUitl.packColumn(correspondTable,
                    //ScheduleTableConstant.CORRESPOND_TABLE_LENGTH,
                    //ScheduleTableConstant.MARGIN);
            //SwingUitl.setTableHeaderAlign(correspondTable);        return correspondTbPanel;
        }
      

  2.   

    sorry, 上次给你的代码是有这个问题,应该改成这样  JTable table = new JTable(30, 5) {
    public boolean getScrollableTracksViewportHeight() {
    JViewport viewport = (JViewport) getParent();
    Dimension d = getPreferredSize();
    if (viewport != null && d.height > viewport.getHeight()) {
    return false;
    }
    else {
    return true;
    }
    }
    };