Rambler's Top100

А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я

Все примеры | Примеры по пакетам

Перетаскивание содержимого ячеек таблицы


//Перетаскивание содержимого ячеек таблицы
//Выделить кликом мыши ячейку, затем перетащить на нужную ячейку
package jtable;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.*;
import javax.swing.table.*;
import javax.swing.*;
public class DropTableSelf extends JFrame implements DropTargetListener {
  DropTarget dt;
  DefaultTableModel model;
  DefaultTableModel model1;
  JTextArea ta;
        JTable table;
        int row0=0;
        int col0;
  public DropTableSelf() {
    super("Drop Test");
    setSize(400, 300);
    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    ta = new JTextArea();
    ta.setBackground(Color.white);   
    model1 = new DefaultTableModel();
    model1.addColumn("Column1");
    model1.addColumn("Column2");
    model1.addColumn("Column3");
    model1.insertRow(0, new Object[]{"v11","v12"});
    model1.insertRow(1, new Object[]{"v21","v22"});
    model1.insertRow(0, new Object[]{"v31"});
    table=new JTable(model1);
    table.setDragEnabled(true);
    table.setColumnSelectionAllowed(true);
    
    getContentPane().add(table, BorderLayout.CENTER);
    dt = new DropTarget(table, this);
    setVisible(true);
  }
  public void dragEnter(DropTargetDragEvent dtde) {
  
       row0=table.getSelectedRow();
       col0=table.getSelectedColumn();
        
  }
  public void dragExit(DropTargetEvent dte) {
  }
  public void dragOver(DropTargetDragEvent dtde) {
        Point pt = dtde.getLocation();
        int row1 = table.rowAtPoint( pt );
        int col1=table.columnAtPoint(pt);
        if( row1 <  0 ) {return;}
        else
        {
            table.setColumnSelectionInterval(col1, col1);
            table.setRowSelectionInterval( row1, row1 );
         }
  }
  public void dropActionChanged(DropTargetDragEvent dtde) {
    
  }
  public void drop(DropTargetDropEvent dtde) {
    try {
        System.out.println("value "+table.getValueAt(row0, col0));
        Point pt = dtde.getLocation();
        int row1 = table.rowAtPoint( pt );
        int col1=table.columnAtPoint(pt);
      System.out.println("value "+table.getValueAt(row0, col0));
        if( row1 <  0 ) return;
        {
        table.setColumnSelectionInterval(col1, col1);
        table.setRowSelectionInterval( row1, row1 );
        table.setValueAt(table.getValueAt(row0, col0), row1, col1);
        }
      table.clearSelection();
    } catch (Exception e) {
      e.printStackTrace();
      dtde.rejectDrop();
    }
  }
  public static void main(String args[]) {
    new DropTableSelf();
  }
}

01.02.2009

Rambler's Top100


Ассоциативные ссылки