JTable Listener

Ja sowas in der Art nur muss ich reagieren wenn ich in den Editiermodus gehe
und nicht wenn ich ihn verlasse oder abbreche.
 
Hallo!

Schau doch mal hier:
Code:
/**
 * 
 */
package de.tutorials;

import java.awt.event.MouseEvent;
import java.util.EventObject;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

/**
 * @author Tom
 */
public class JTableNotifyOnEditExample extends JFrame {

	JTable table;

	String[] header = { "A", "B", "C", "D" };

	String[][] rowData = { { "1", "1", "1", "1" }, { "2", "2", "2", "2" },
			{ "3", "3", "3", "3" }, { "4", "4", "4", "4" } };

	public JTableNotifyOnEditExample() {
		super("JTableNotifyOnEditExample");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		table = new JTable(rowData, header) {
			public boolean editCellAt(int row, int column, EventObject e) {

				if (e == null) {
					System.out.println("edit!");
				}

				if (e instanceof MouseEvent) {
					MouseEvent mouseEvent = (MouseEvent) e;
					if (mouseEvent.getClickCount() > 1) {
						System.out.println("edit!");
					}
				}

				return super.editCellAt(row, column, e);
			}
		};

		add(new JScrollPane(table));
		pack();
		setVisible(true);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new JTableNotifyOnEditExample();
	}

}

gruß Tom
 
Mal so aus der Hüfte: Gab es da nicht eine Methode isEditing oder isCellEditing? Ich meine mich dunkel daran erinnern zu können.
 
Hallo!

Überschreibt man die isEditing Methode:
Code:
	table = new JTable(rowData, header) {
			public boolean isEditing() {

				System.out.println("isEditing...");

				return super.isEditing();
			}

		};
so wird man ein gaaaaanz klein wenig zu oft informiert, dass die Tabelle editiert wird ;-)

Gruß Tom
 

Neue Beiträge

Zurück