Java 按钮事件后更新表值
在我的SWT-GUI中,我有一个带有3列的Java 按钮事件后更新表值,java,swt,Java,Swt,在我的SWT-GUI中,我有一个带有3列的表,这些行将根据从串行端口事件接收到的数据进行更新 btnFetchRow.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if(myCommNew.serialDataExist()) { try {
表
,这些行将根据从串行端口事件接收到的数据进行更新
btnFetchRow.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if(myCommNew.serialDataExist()) {
try {
final TableItem newRow = new TableItem(table, SWT.NONE);
while(tblIndex<myCommNew.getSerialDataRecvd().size()) {
System.out.println("tblIndex Value:" + tblIndex);
System.out.println("Recvd Data Value:" + myCommNew.getSerialDataRecvd());
newRow.setText(0, Integer.toString(tblIndex));
newRow.setText(1, getCurrentTime());
newRow.setText(2,myCommNew.getSerialDataRecvd().get(tblIndex));
System.out.println("The Value Recvd is :" + myCommNew.getSerialDataRecvd().get(tblIndex));
tblIndex++;
}
} catch (Exception excWhile) {
System.out.println("Error in creating row");
System.err.println(excWhile.toString());
excWhile.printStackTrace();
}
btnFetchRow.addSelectionListener(新的SelectionAdapter(){
@凌驾
公共无效WidgeSelected(SelectionEvent e){
if(myCommNew.serialDataExist()){
试一试{
final TableItem newRow=新TableItem(表,SWT.NONE);
而(tblIndex这是因为您只创建了一个新的TableItem
。您需要为数组列表中的每个元素创建一个:
for(int i = 0; i < myCommNew.getSerialDataRecvd().size(); i++)
{
TableItem newRow = new TableItem(table, SWT.NONE);
newRow.setText(0, Integer.toString(i));
newRow.setText(1, getCurrentTime());
newRow.setText(2, myCommNew.getSerialDataRecvd().get(i));
}
for(int i=0;i
但我的While循环也在做同样的事情。而且,当我在“try{code”之前移动“final tableitem…”时,一切都正常。为什么?新tableitem()
位必须进入循环(for
或While
无所谓)。否则,您只是重复使用同一项(行)而不是为每个元素创建一个新元素。