gpt4 book ai didi

java - 仅打印(不是整个框架)java swings中的标签

转载 作者:行者123 更新时间:2023-11-29 05:34:33 24 4
gpt4 key购买 nike

检查下图

enter image description here

条形码作为标签添加。单击“打印”后,我只需要打印条形码。我怎么想呢。我看到几个例子,但它们打印了整个框架,即包括打印按钮框架。

更新现在我将打印件打印到左上角。如何将其放置在我想要的位置

enter image description here

最佳答案

需要做的只是为单个 Component 实现 Printable

这是一个基本的实现示例,可以阐明该主题:

/**
* Allows for printing a single UI component.
* @author Ben Barkay
*/
public class ComponentPrinter implements Printable {
/**
* The component to be printed.
*/
Component component;

/**
* The amount of pixels to shift the component to the right.
*/
int translateX;

/**
* The amount of pixels to shift the component to the bottom.
*/
int translateY;

/**
* Constructs a new <code>ComponentPrinter</code> for the specified component.
* @param component The component that this component printer will print.
* @param translateX The amount of pixels to move the component towards the right.
* @param translateY The amount of pixels to move the component towards the bottom.
*/
public ComponentPrinter(Component component, int translateX, int translateY) {
this.component = component;
this.translateX = translateX;
this.translateY = translateY;
}

/**
* Prints the component of this <code>ComponentPrinter</code>.
* {@inheritDoc}
*/
@Override
public int print(Graphics graphics, PageFormat format, int pageIndex)
throws PrinterException {
// We assume that there is only one page.
if (pageIndex == 0) {
// Position the component appropriately
((Graphics2D)graphics).translate(translateX, translateY);

// Paints the component on the graphics that are about to be printed for this page.
component.paint(graphics);
return PAGE_EXISTS;
}

// We don't have a page other than the first page.
return NO_SUCH_PAGE;
}
}

它的用法是这样的:

JLabel yourJLabelHere = null;
int moveToTheRight = 100;
int moveToTheBottom = 50;
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(new ComponentPrinter(yourJLabelHere, moveToTheRight, moveToTheBottom));
if (printJob.printDialog()) {
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}

关于java - 仅打印(不是整个框架)java swings中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19971465/

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