将参数传递给已实现的方法java

时间:2013-04-11 10:30:32

标签: java implementation argument-passing

我有一个实现Printable的类。我试图以某种方式从文本字段中获取值到print方法,但似乎无法解决如何做到这一点。

public class TreePrint extends javax.swing.JFrame implements Printable{

然后,这是用户选择要打印的项目时的操作:

private void btnPrintActionPerformed(java.awt.event.ActionEvent evt)                                         
{
    goPrint();  
}

public void goPrint() 
{
    PrinterJob job = PrinterJob.getPrinterJob();
    job.setPrintable(new TreePrint());
   // boolean doPrint = job.printDialog();
    job.print();
}

@Override  
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {  
    Koks koksSelected = (Koks) combobox_skirne.getSelectedItem();  
    System.out.println(combobox_skirne.getSelectedItem());  
    if (page > 0) {  
        return NO_SUCH_PAGE;  
    }  
    System.out.println(koksSelected.getSkirne());    
    return PAGE_EXISTS;  
}

问题是我无法在print方法中获取所选项目或文本值。我可以在go print或btnPrintActionPerformed中获取它们,但是在print()中它总是显示程序首次运行时所选的值。 如果需要,我可以发布更多代码,但它很长。我确定这是实现方法的基本问题,但我找不到答案。

这是一个类似的(相同的?)问题: Passing Parameters to the print method (JAVA)

1 个答案:

答案 0 :(得分:3)

如果创建TreePrint对象时可用的参数为a,则添加带有此字段的新构造函数。如果没有,请在使用TreePrint中的公共方法打印之前设置参数。例如:

private TreePrint tp;

public void goPrint() 
{
    ...
    this.tp = new TreePrint();
    job.setPrintable(this.tp);
    ...
}

@Override  
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {  
    ...
    this.tp.setXYZParameters(para1, para2, paraN);
    ...
}

TreePrint示例:

private Integer para1;
private Integer para2;
private Integer paraN;

public void setXYZParameters(...) {...}