두 개의 텍스트를 TableItem
에 바꿔 넣고 싶습니다. 먼저 텍스트를 설정 한 다음 TableItem
이 선택되었는지 확인하고 2 개의 변수에 저장하고 덮어 씁니다. 하지만 대신 내가 원하는 메시지의 이러한 문자열을 얻을 다음 @
후SWT TableItem getText가 예상 한 값을 반환하지 않습니다.
[Lorg.eclipse.swt.widgets.TableItem;@6fadae5d
부분은 항상 다르다, 나는 그것이 ID 또는 뭔가 그러나 나는 해결책을 찾을 수없는 것 같아요. 여기에 코드 스 니펫이 있습니다. groupsList
은 String
어레이입니다.
for (int i = 1; i <= logic.amountOfGroups; i++) {
Table table = new Table(shell, SWT.MULTI | SWT.BORDER);
table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
for (int j = 0; j < logic.personsInGroup; j++) {
TableItem tableItem_1 = new TableItem(table, SWT.NONE);
tableItem_1.setText(logic.groupsList.get(i - 1)[j]);
}
tableList.add(table);
}
그래서 나는 TableItems에 내용을 쓴 다음, 나는 그들을 교체하려면 : 여기
swapButton = new Button(shell, SWT.NONE);
swapButton.setText("Swap");
swapButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent e) {
int[] playerIndices = new int[2];
int[] groupIndices = new int[2];
int i = 0;
String toBeSwappedZero = "";
String toBeSwappedOne = "";
for (Table table : tableList) {
if (table.getSelectionCount() == 1) {
if (toBeSwappedZero == "") {
groupIndices[0] = i;
playerIndices[0] = table.getSelectionIndex();
toBeSwappedZero = table.getSelection().toString();
} else {
groupIndices[1] = i;
playerIndices[1] = table.getSelectionIndex();
toBeSwappedOne = table.getSelection().toString();
}
}
if (table.getSelectionCount() == 2) {
playerIndices = table.getSelectionIndices();
groupIndices[0] = i;
groupIndices[1] = i;
toBeSwappedZero = table.getItem(playerIndices[0]).getText();
toBeSwappedOne = table.getItem(playerIndices[1]).getText();
}
i++;
}
System.out.println(toBeSwappedOne);
tableList.get(groupIndices[0]).getItem(playerIndices[0]).setText(toBeSwappedOne);
tableList.get(groupIndices[1]).getItem(playerIndices[1]).setText(toBeSwappedZero);
}
});
는 GUI
이 코드의 어느 부분이이 결과를 제공합니까? '[Lorg.eclipse.swt.widgets.TableItem, 6fadae5d' 당신이 테이블 항목의 배열에'toString'를 호출하여 얻을 것입니다 것입니다 @. –