2017-05-16 152 views
0

我在Java中使用Vaadin,我正在學習本教程:Vaadin Upload 所以我創建了一個新的Class名稱上傳器。但是有一些東西不中我的代碼工作,我把什麼是不工作的** **的文字:Vaadin上傳「無法解析符號」錯誤上傳教程

import com.vaadin.server.FileResource; 
import com.vaadin.ui.*; 

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.OutputStream; 

/** 
* Created by mflamant on 15/05/2017. 
*/ 
public class Uploader { 
    final Embedded image = new Embedded("Uploaded image"); 
    **image.setVisible(false);** 

    class Image implements Upload.Receiver, Upload.SucceededListener{ 
     public File file; 
     public OutputStream receiveUpload(String filename, String mimeType){ 
      FileOutputStream fos = null; 
      try{ 
       file = new File(filename); 
       fos = new FileOutputStream(file); 
      } catch (final java.io.FileNotFoundException e){ 
       e.printStackTrace(); 
       return null; 
      } 
      return fos; 
     } 

     public void uploadSucceeded(Upload.SucceededEvent event){ 
      image.setVisible(true); 
      image.setSource(new FileResource(file)); 
     } 
    }; 

    Image receiver = new Image(); 
    Upload upload = new Upload("Upload image here", receiver); 
    **upload.setButtonCaption("Start Upload");** 
    **upload.SucceededListener(receiver);** 

    Panel panel = new Panel("Image storage"); 
    Layout panelContent = new VerticalLayout(); 
    **panelContent.addComponents(upload, image);** 
    **panel.setContent;** 


} 

我的錯誤是「無法解析符號」。你能向我解釋爲什麼這些線路不工作?

+0

'不工作'是對您的問題的一個非常模糊的描述。你需要清楚地解釋[什麼不起作用](https://stackoverflow.com/help/how-to-ask)。是否有編譯錯誤,運行時錯誤,意外行爲? –

+0

對不起,我的IDE中只有紅色。用「無法解析符號」 –

回答

1

Upload example沒有列出應用程序的整個代碼。它只包含特定於上傳組件本身的代碼片段。如果你只是將它們粘貼到你的課堂上,這些代碼片段不會工作。

本示例是Vaadin Documentation的一部分,您需要了解在達到此部分時的基礎知識。

示例代碼旨在用作構建Vaadin組件的方法的一部分。特別的錯誤是您只能從可執行代碼塊調用方法,如image.setVisible(false)。你不能將它們粘貼到你的類聲明中,這不是一個有效的Java代碼。

指南鏈接到a working code on Github。正如你可以看到它包含了一切必要的初始化:

public class UploadExample extends CustomComponent implements BookExampleBundle { 
private static final long serialVersionUID = -4292553844521293140L; 

public void init (String context) { 
    //... omitted for brevity 
     basic(layout); 
    //... omitted for brevity 
} 

void basic(VerticalLayout layout) { 
    final Image image = new Image("Uploaded Image"); 
    //the rest of the example code goes here 

請注意,這個類單獨仍然沒有作爲一個獨立的應用程序。這只是其中一個組件。

所以,你現在可以做什麼:

  • 完成Vaadin Tutorial第一。這應該有助於你理解這些概念。
  • 先閱讀Introduction部分文檔。這將幫助您構建工作應用程序。然後你可以跳轉到特定的組件。
  • 克隆Book Examples來自Github的應用程序,然後嘗試弄清楚它是如何工作的。
+1

謝謝!我去做 ! –

相關問題