Drag and Drop Table

Status
Nicht offen für weitere Antworten.

leni

Aktives Mitglied
Hallo,

ich möchte gerne eine Tabelle definiere, wo man die Zeilen der Tabelle einfach per Drag and Drop umordnen kann. Ich habe mir dazu das Codefragment von Drag and Drop JTable angsehen. Der Code funktioniert auch, leider ist mir nicht klar, was diese StringTransferHandler und TableTransferHandler machen? - es wird zwar der Konstruktor von TableTransferHandler aufgerufen, aber nie irgendwelche Methoden davon...? - Kann da jemand etwas Licht ins dunkel bringen?- versteh auch nicht welches Event hier aufgerufen wird, wenn man eine Zeile an eine andere Position schiebt? - oder gibt es noch eine einfachere Methode, dies zu realisieren?- ich möchte ja nicht Zeilen von einer Tabelle in eine andere verschieben, sondern einfach nur Zeilen innerhalb einer Tabelle verschieben. :bahnhof:

mfg leni
 

André Uhres

Top Contributor
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class RowDragging extends JFrame {
    public RowDragging() {
        initComponents();
    }
    private void initComponents() {
        jTable1 = new JTable();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jTable1.setModel(new DefaultTableModel(
                new Object [][] {
                    {"1", null, null, null},
                    {"2", null, null, null},
                    {"3", null, null, null},
                    {"4", null, null, null}
        },
                new String [] {
            "Title 1", "Title 2", "Title 3", "Title 4"
        }
        ));
        jTable1.addMouseMotionListener(new MouseMotionAdapter() {
            public void mouseDragged(MouseEvent evt) {
                jTable1MouseDragged(evt);
            }
        });
        jTable1.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent evt) {
                jTable1MousePressed(evt);
            }
        });
        jTable1.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tableModel = (DefaultTableModel)jTable1.getModel();
        getContentPane().add(new JScrollPane(jTable1), BorderLayout.CENTER);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-400)/2, (screenSize.height-300)/2, 400, 300);
    }
    private void jTable1MousePressed(MouseEvent evt) {
        rowFrom = jTable1.rowAtPoint(evt.getPoint());
    }
    private void jTable1MouseDragged(MouseEvent evt) {
        rowTo = jTable1.rowAtPoint(evt.getPoint());
        if(rowTo!=rowFrom && rowTo>-1 && rowTo<jTable1.getRowCount()){
            tableModel.moveRow(rowFrom, rowFrom, rowTo);
            rowFrom=rowTo;
        }
    }
    public static void main(String args[]) {
        new RowDragging().setVisible(true);
    }
    private JTable jTable1;
    private DefaultTableModel tableModel;
    private int rowFrom, rowTo;
}
 

leni

Aktives Mitglied
super, danke für die abgespeckte Version! :) die ist mir jetzt doch um einiges klarer.

mfg leni
 

leni

Aktives Mitglied
Hallo,

eine Frage hätte ich dazu noch: Kann man irgendwie abfragen ob der User bereits einmal Zeilen in der Tabelle verschoben hat oder nicht?

mfg leni
 

leni

Aktives Mitglied
Also ich lege eine Variable boolean rowsReordered an. Aber die Methode moveRow ist ja eine vorgegebene vom DefaultTableModel, wie kann ich dann die Variable rowsReordered dort true setzen? :bahnhof:

ich hoffe die frage ist nicht allzu blöd.

mfg leni
 

leni

Aktives Mitglied
Jap okay danke habe ich gemacht. Ist es möglich, wenn ich jetzt die JTable mit dieser Funktion verwende (Also dass ich die Zeilen verschieben kann), dass ich diese Funktion auch deaktiviere? - Ich möchte nämlich für einen bestimmten Zeitraum (während des Ablaufs eines anderen Threads) die Möglichkeit die Zeilen in der JTable zu verschieben deaktivieren. Ist das irgendwie möglich?

mfg leni
 

leni

Aktives Mitglied
hm...ist es nicht möglich so eine Art von JTable also die über ein MousePressed und MouseDragged event verfügt zu deaktivieren? - also dass man sie nicht anklicken bzw. keine Zeilen mehr verschieben kann??:(:(
 

André Uhres

Top Contributor
Wie wärs denn wennste deine grauen Zellchene bissel bemühen tätest :D :
1. In welcher Method wird denn die zu desaktivierende Funktion ausgeführt?
2. Aufgrund von was könntest du dort entscheiden ob die Funktion auszuführen ist oder nicht?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Grid und drag and drop Allgemeine Java-Themen 1
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
G Drag and Drop und trotzdem MouseEvents Allgemeine Java-Themen 3
G Datei per Drag and Drop auf den Link öffnen Allgemeine Java-Themen 6
S GUI - Drag & Drop Elemente Allgemeine Java-Themen 10
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
C Drag & Drop, Icons sollen getauscht werden Allgemeine Java-Themen 4
vladimir Welche API für Grafik und Drag&Drop Allgemeine Java-Themen 3
M Zwischenablage/ Drag and Drop Allgemeine Java-Themen 9
G Drag & Drop Allgemeine Java-Themen 6
M Drag and Drop FileListFlavor unter Ubuntu - Nautilus Allgemeine Java-Themen 5
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
G Drag&Drop von Textdateien Allgemeine Java-Themen 13
G Datei Verknuepfung, drag&drop Plattformunabhaengig Allgemeine Java-Themen 3
T Drag und Drop von Applet 1 zu Applet 2 _in_ derselben VM Allgemeine Java-Themen 9
T JLable Drag und Drop Allgemeine Java-Themen 4
R Drag und Drop - Fehler während Laufzeit Allgemeine Java-Themen 14
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
P drag und drop und move mit 2 Fenstern fkt. nicht 100 %ig Allgemeine Java-Themen 7
F Drag&Drop Allgemeine Java-Themen 10
M In JTables Drag und Drop verbieten Allgemeine Java-Themen 2
U Drag & Drop Allgemeine Java-Themen 2
E Frage zu Drag and Drop Allgemeine Java-Themen 2
S Drag&Drop einer Datei, wie nur den Dateipfad erhalten? Allgemeine Java-Themen 9
G Drop down Button Menü (Combobox) Allgemeine Java-Themen 7
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
T Java Excel Drop Down Formularsteuerelement Allgemeine Java-Themen 0
R Drang and Drop: Tab bei Firefox Allgemeine Java-Themen 13
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
A ALTER TABLE mit Hilfe von RegEx zerlegen, splitten Allgemeine Java-Themen 5
C Wie kann man die IText Table Position bestimmen? Allgemeine Java-Themen 3
G Transaction Script, Table- Domain Model Allgemeine Java-Themen 2
F IText Table ohne Rand Allgemeine Java-Themen 5
D iText und Table.setTableFitsPage(); geht nicht Allgemeine Java-Themen 12
L Wie kann man dieses "Table" Problem am besten löse Allgemeine Java-Themen 8
E HashMap/Table sortiert nach nacheinander eingefuegten Elmeme Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben