JTable maximal 20 Zeilen Selektierbar

VinoRosso

Grünschnabel
Moin,

Ich Suche nach ner Möglichkeit für eine JTable vorzugeben das nur maximal eine bestimmte Anzahl an Zeilen selektiert werden kann.

Gibts da ne schnell einfache möglichkeit? :)


mfg Vino
 
ohne ein SelectionModel geht es nicht...

hier die Lösung:

Code:
import javax.swing.DefaultListSelectionModel;


public class MyClass extends DefaultListSelectionModel{
	

	int maxSelectableRows;
	

	public MyClass (int maxSelectableRows){
		this.maxSelectableRows = maxSelectableRows;
	}
	

	/* (non-Javadoc)
	 * @see javax.swing.DefaultListSelectionModel#addSelectionInterval(int, int)
	 */
	@Override
	public void addSelectionInterval(int index0, int index1) {
		int numberOfSelectedRows = 0;
		for (int i = getMinSelectionIndex(); i <= getMaxSelectionIndex(); i++) {
			if (isSelectedIndex(i)) {
				numberOfSelectedRows++;
			}
		}
		if (numberOfSelectedRows > maxSelectableRows) {
			return;
		}
		super.addSelectionInterval(index0, index1);
	}
	
	/* (non-Javadoc)
	 * @see javax.swing.DefaultListSelectionModel#setSelectionInterval(int, int)
	 */
	@Override
	public void setSelectionInterval(int index0, int index1) {
		int min = Math.min(index0, index1);
		int max = Math.max(index0, index1);
		if ((max - min) > maxSelectableRows) {
			return;
		}
		super.setSelectionInterval(index0, index1);
	}
	
}
 

Neue Beiträge

Zurück