Ich habe eine JTable. Wenn ein Benutzer auf eine Zelle klickt, wird eine andere JTable erstellt, die die Daten für die gesamte Zeile dieser Zelle in einem Spaltenformat anzeigt (dh die Zeile wird in eine Spalte konvertiert).Wie MouseListener zu einem Tabellenmodell hinzufügen
Dies passiert, wenn der Benutzer klickt, aber es ist ein bisschen irritierend, jedes Mal passieren, also möchte ich es nur auf einen Doppelklick machen.
Das Problem besteht darin, dass die getSelection-Methode der Tabelle nur eine addListSelectionListener-Methode und kein MouseListener verwendet. Wie kann ich machen was ich will? Hier
ist der Code:
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int selectedRow = table.getSelectedRow();
DefaultTableModel newModel = new DefaultTableModel();
String rowName = "Row: " + selectedRow;
newModel.setColumnIdentifiers(new Object[]{rowName});
for (int i = 0; i < table.getModel().getColumnCount(); i++) {
newModel.addRow(new Object[]{table.getModel().getValueAt(selectedRow, i)});
}
JTable newTable = new JTable(newModel) {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public Dimension getPreferredScrollableViewportSize() {
return new Dimension(140, 240);
}
};
// Apply any custom renderers and editors
JOptionPane.showMessageDialog(frame, new JScrollPane(newTable),
rowName, JOptionPane.PLAIN_MESSAGE);
}
}
});