控制器不调用内部函数

Controller doesn't call internal function

我正在尝试制作一个 Java CRUD MVC 应用程序。它使用 Sqlite 数据库。我的功能之一不想工作。在此函数中,我想准备一个包含一些字符串的 PDF 文档。当我尝试 运行 从分离的 class 此函数时一切正常,但是当我将它放入我的 MVC 应用程序时它不起作用。

控制台没有显示任何错误,我认为我的功能甚至没有启动。我想这可能是参数问题?

这里是controller.java:

public void generuj(){
    akcja = new ActionListener() {
        public void actionPerformed(ActionEvent event)
        {
            String[] args = null;
            PDF.main(args);
            interfejs.getguzikgeneruj().addActionListener(akcja);   
        }
    };
}

这里是Functions.java:

public static void generuj() throws DocumentException{
    Document dokument = new Document();
    try {
        PdfWriter.getInstance(dokument, new FileOutputStream("Arkusz Inwentaryzacyjny.pdf"));
        dokument.open();
        Paragraph paragraf = new Paragraph();
        paragraf.add("Arkusz inwentaryzacyjny");
        dokument.add(paragraf);
        dokument.close();
    } catch (FileNotFoundException e) {     
        e.printStackTrace();
    }
}

这是有效的class:

package model;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class PDF {

public static void main(String[] args){
    Document dokument = new Document();

    try {
        PdfWriter.getInstance(dokument, new FileOutputStream("Arkusz Inwentaryzacyjny.pdf"));
        dokument.open();
        Paragraph paragraf = new Paragraph();
        paragraf.add("Arkusz inwentaryzacyjny");
        dokument.add(paragraf);
        dokument.close();
    } catch (FileNotFoundException e) {

        e.printStackTrace();
    } catch (DocumentException e) {

        e.printStackTrace();
    }

    }
}

如果您的方法由于应用程序上下文而无法打开 pdf 文档,我至少会 re-add DocumentException 的异常处理程序。

这可能是您在控制台上看不到任何内容的原因。

public static void generujp() throws DocumentException {
    Document dokument = new Document();
    try {
        PdfWriter.getInstance(dokument, new FileOutputStream("example.pdf"));
        dokument.open();
        Paragraph paragraf = new Paragraph();
        paragraf.add("Arkusz inwentaryzacyjny");
        dokument.add(paragraf);
        dokument.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
        throw e;
    }
}

我也不会在动作中添加动作侦听器。它永远不会被添加。您打算将它放在事件处理程序之外吗?

public void generuj() {
    ...
    akcja = new ActionListener() {
    public void actionPerformed( ActionEvent event) {
        String[] args = null;
        PDF.main(args);
        //interfejs.getguzikgeneruj().addActionListener(akcja);   
    }
    };
    // new location...
    interfejs.getguzikgeneruj().addActionListener(akcja);   
}