А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я Все примеры | Примеры по пакетам |
|
Перетаскивание содержимого ячеек таблицы//Перетаскивание содержимого ячеек таблицы
//Выделить кликом мыши ячейку, затем перетащить на нужную ячейку
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();
}
}
|
|
|
|
|