Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按钮事件后更新表值_Java_Swt - Fatal编程技术网

Java 按钮事件后更新表值

Java 按钮事件后更新表值,java,swt,Java,Swt,在我的SWT-GUI中,我有一个带有3列的表,这些行将根据从串行端口事件接收到的数据进行更新 btnFetchRow.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if(myCommNew.serialDataExist()) { try {

在我的SWT-GUI中,我有一个带有3列的
,这些行将根据从串行端口事件接收到的数据进行更新

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
无所谓)。否则,您只是重复使用同一项(行)而不是为每个元素创建一个新元素。