SWT Tabeleditor, wie komme ich an das Ding ran?

elmato

Erfahrenes Mitglied
Aloha,

ich habe gerade angefangen mich mit SWT zu beschäftigen und komme gerade nicht weiter. Ich habe eine Tabelle mit 10 Spalten einer Reihe von Checkboxen Code sieht so aus:
Java:
private Table createTable(String [] names){
		Table table = new Table(baseTabFolder, SWT.BORDER | SWT.HIDE_SELECTION);
		
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		table.setSize(new Point(360, 55));
		
		//ExportExcelToAccess a = new ExportExcelToAccess(new File("C:/Documents and Settings/mmaerker/My Documents/Apr_Okt_06_DualCore_Exchange_FJS (3).xls"), "C:/Documents and Settings/mmaerker/My Documents/db1.mdb");
		//String [][] names = excelToAccess.getPossibleColumnHeaders();
		//for (int i = 0; i < names.length; i++) {
			for (int j = 0; j < names.length; j++) {
				TableColumn column = new TableColumn(table, SWT.None);
				column.setResizable(false);
				column.setText(names[j]);
				column.pack();
				
			}
		//}
		//Ein TableItem(Reihe) einfügen
		new TableItem(table, SWT.None);
		TableItem []items = table.getItems();
		
		//Table Editor aufrufen und Buttons als Checkboxen einfügfen
		for (int i = 0; i < table.getColumnCount(); i++) {
			editor = new TableEditor(table);
			Button button = new Button(table, SWT.CHECK);
			button.setSelection(true);
			button.pack();
			editor.minimumWidth = button.getSize ().x;
			editor.horizontalAlignment = SWT.CENTER;
			editor.setEditor(button, items[0], i);
		}
		return table;
	}

nun möchte ich später wenn ein Knopf gedrückt wurde gerne herausfinden welche dieser Boxen den Selectiert sind, nur hier scheitert es,
Java:
Table table = (Table)items[i].getControl();
TableItem[] tableItems = table.getItems();
klappt nicht, über die Columns komme ich auch nicht ran, nun die Frage, wie macht man das?
Vielen Dank im Vorraus
 
Also eine Lösung wäre:

Die einzelnen Buttons mit setData belegen.
Dann über einen Listener der auf die Selections reagiert den button über das event und die id casten.[

Bsp:

Code:
private static Listener listener = new Listener()
{
		public void handleEvent(Event e)
		{
			switch (e.type)
			{
				case SWT.Selection:
					if(e.widget.getData().toString().equals("TableItem"))
					{
						btn_TableItem = (Button) e.widget;
				                //das was mit dem Button passieren soll
					}
				break;
			}
		}
	};

wenn du mehrere Buttons hast kannst du Bspw. bei setData einen festen Wert eintragen und diesem einen Index dazugeben und dann im Event per substring die ID herausfiltern
 
Zurück