gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:53:42 25 4
gpt4 key购买 nike

我有一个实现 Printable 的类。我试图以某种方式将文本字段中的值获取到打印方法中,但似乎无法弄清楚如何做到这一点。

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;
}

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

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

最佳答案

如果创建 TreePrint 对象时参数可用,请添加一个包含此字段的新构造函数。如果没有,请在使用 TreePrint 中的公共(public)方法进行打印之前设置参数。示例:

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(...) {...}

关于java - 将参数传递给实现的 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com