有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

fxml集成中的java javafx webcapture zxing

  package webcamfx;

  public class FXMLDocumentController implements Initializable, Runnable, ThreadFactory {



    private Webcam webcam = Webcam.getDefault();
    private WebcamPanel webcamPanel = new WebcamPanel(webcam, false);
    private Executor executor = Executors.newSingleThreadExecutor(this);

    @FXML
    private SwingNode swingnode;
    private TextField textfield;


    //@Override
    public void initialize(URL url, ResourceBundle rb) {

            //super();
            //SwingNode swingnode = new SwingNode();
            swingnode.setContent(webcamPanel);
            webcamPanel.start();
            executor.execute(this);

    }   

    @Override
    public void run() {
        do {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            Result result = null;
            BufferedImage image = null;

            if (webcam.isOpen()) {
                if ((image = webcam.getImage()) == null) {
                    continue;
                }
                LuminanceSource source = new BufferedImageLuminanceSource(image);
                BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
                try {
                    result = new MultiFormatReader().decode(bitmap);
                } catch (NotFoundException e) {
                    // fall thru, it means there is no QR code in image
                }
            }
            if (result != null) {
                System.out.println(result.getText());
                textfield.setText(result.getText());
            }

        } while (true);
    }


    @Override
    public Thread newThread(Runnable r) {
        Thread t = new Thread(r, "example-runner");
        t.setDaemon(true);
        return t;
    }

    }

运行和输出:

线程“示例运行程序”java中出现异常。lang.NullPointerException 在webcamfx上。FXMLDocumentController。运行(FXMLDocumentController.java:90) 在爪哇。util。同时发生的线程池执行器。runWorker(ThreadPoolExecutor.java:1142) 在爪哇。util。同时发生的线程池执行器$Worker。运行(ThreadPoolExecutor.java:617) 在爪哇。朗。丝线。运行(Thread.java:745)

这一行90:textfield。setText(result.getText())


共 (0) 个答案