gpt4 book ai didi

java - 打印对话框不突出

转载 作者:搜寻专家 更新时间:2023-10-31 20:09:37 26 4
gpt4 key购买 nike

通过JavaFx的PrinterJob可以调用Print Dialog。我的问题是调用时对话框没有出现。

这是我的例子:

import javafx.application.Application;
import javafx.print.Printer;
import javafx.print.PrinterJob;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Printexample extends Application
{

@Override
public void start( final Stage primaryStage )
{

final PrinterJob job = PrinterJob.createPrinterJob( Printer.getDefaultPrinter() );
final Button b = new Button( "Print Dialog" );
b.setOnAction( event -> job.showPrintDialog( primaryStage ) );
final BorderPane pane = new BorderPane( b );
primaryStage.setMinWidth( 400 );
primaryStage.setMinHeight( 300 );
primaryStage.setTitle( "Print" );
final Scene scene = new Scene( pane );
primaryStage.setScene( scene );


primaryStage.centerOnScreen();
primaryStage.addEventFilter( KeyEvent.KEY_PRESSED, event ->
{
if ( event.getCode().equals( KeyCode.ESCAPE ) )
{
primaryStage.close();
}
} );
primaryStage.show();

}

public static void main( final String[] args )
{
launch( args );
}
}

第二个问题:框架不是模态的,因此会导致错误。

信息:我使用 Java 8_92。

最佳答案

可能是 JavaFX 的当前限制,如 JDK-8088395 所述.

所以你有这些选择:

  1. 等待此问题最终在更新或 JavaFX 9 中修复。
  2. 自己编写一个自定义对话框,然后与打印 API 通信以填充它,如 JDK-8098009 中的建议.
  3. 使用叠加层屏蔽您的场景,显示打印对话框,然后移除叠加层。您还需要在场景被阻止时防止窗口关闭。
  4. 使用 AWT 打印对话框(kludge,你已经被警告过),例如:

java.awt.print.PrinterJob printJob = PrinterJob.getPrinterJob();
Button b = new Button("Print Dialog");
b.setOnAction(event -> {
JFrame f = new JFrame();
printJob.printDialog();
// Stage will be blocked(non responsive) until the printDialog returns
});

关于java - 打印对话框不突出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36836968/

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