diff --git a/test/jdk/java/awt/print/PageFormat/SetOrient.html b/test/jdk/java/awt/print/PageFormat/SetOrient.html
deleted file mode 100644
index 422d64e4610..00000000000
--- a/test/jdk/java/awt/print/PageFormat/SetOrient.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
- SetOrient
-
-
-
-This test prints two pages and sends them to the printer.
-One page is in PORTRAIT orientation and the other is in LANDSCAPE
-orientation. On each page it draws an ellipse inscribed in the clip
-boundary established by the PrinterJob. The ellipse should fill the
-page within the bounds established by the default margins and not
-extend off any end or side of the page. Also, the string "Portrait"
-or "Landscape" should be oriented correctly.
-
-
-
-
diff --git a/test/jdk/java/awt/print/PageFormat/SetOrient.java b/test/jdk/java/awt/print/PageFormat/SetOrient.java
index 9d80702c95e..d3cfaf41569 100644
--- a/test/jdk/java/awt/print/PageFormat/SetOrient.java
+++ b/test/jdk/java/awt/print/PageFormat/SetOrient.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -21,56 +21,96 @@
* questions.
*/
-/**
- * @bug 4186119: setting orientation does not affect printer
+/*
+ * @test
+ * @key printer
+ * @bug 4186119
+ * @library /java/awt/regtesthelpers
+ * @build PassFailJFrame
* @summary Confirm that the clip and transform of the Graphics2D is
* affected by the landscape orientation of the PageFormat.
- * @run applet/manual=yesno SetOrient.html
+ * @run main/manual SetOrient
*/
-import java.awt.*;
-import java.awt.geom.*;
-import java.awt.print.*;
-import java.applet.Applet;
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.geom.Ellipse2D;
+import java.awt.print.Book;
+import java.awt.print.PageFormat;
+import java.awt.print.Printable;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
-public class SetOrient extends Applet implements Printable {
- PrinterJob pjob;
+import javax.swing.JButton;
- public void init() {
- pjob = PrinterJob.getPrinterJob();
+public class SetOrient {
+ private static final String INSTRUCTIONS =
+ """
+ This test prints two pages and sends them to the printer.
+ One page is in PORTRAIT orientation and the other is in LANDSCAPE
+ orientation. On each page it draws an ellipse inscribed in the clip
+ boundary established by the PrinterJob. The ellipse should fill the
+ page within the bounds established by the default margins and not
+ extend off any end or side of the page. Also, the string "Portrait"
+ or "Landscape" should be oriented correctly.
+ """;
- Book book = new Book();
- PageFormat pf = pjob.defaultPage();
- pf.setOrientation(PageFormat.PORTRAIT);
- book.append(this, pf);
- pf = pjob.defaultPage();
- pf.setOrientation(PageFormat.LANDSCAPE);
- book.append(this, pf);
- pjob.setPageable(book);
-
- try {
- pjob.print();
- } catch (PrinterException e) {
- throw new RuntimeException(e.getMessage());
- }
+ public static void main(String[] args) throws Exception {
+ PassFailJFrame
+ .builder()
+ .title("SetOrient Test Instructions")
+ .instructions(INSTRUCTIONS)
+ .rows((int) INSTRUCTIONS.lines().count() + 2)
+ .columns(40)
+ .splitUIBottom(SetOrient::createAndShowGUI)
+ .build()
+ .awaitAndCheck();
}
- public int print(Graphics g, PageFormat pf, int pageIndex) {
- Graphics2D g2d = (Graphics2D)g;
- drawGraphics(g2d, pf);
- return Printable.PAGE_EXISTS;
- }
+ public static JButton createAndShowGUI() {
+ JButton btn = new JButton("PRINT");
+ btn.addActionListener(e -> {
+ PrinterJob pjob = PrinterJob.getPrinterJob();
- void drawGraphics(Graphics2D g, PageFormat pf) {
- double ix = pf.getImageableX();
- double iy = pf.getImageableY();
- double iw = pf.getImageableWidth();
- double ih = pf.getImageableHeight();
+ Printable p = new Printable() {
+ public int print(Graphics g, PageFormat pf, int pageIndex) {
+ Graphics2D g2d = (Graphics2D)g;
+ drawGraphics(g2d, pf);
+ return Printable.PAGE_EXISTS;
+ }
- g.setColor(Color.black);
- g.drawString(((pf.getOrientation() == PageFormat.PORTRAIT)
- ? "Portrait" : "Landscape"),
- (int) (ix+iw/2), (int) (iy+ih/2));
- g.draw(new Ellipse2D.Double(ix, iy, iw, ih));
+ void drawGraphics(Graphics2D g, PageFormat pf) {
+ double ix = pf.getImageableX();
+ double iy = pf.getImageableY();
+ double iw = pf.getImageableWidth();
+ double ih = pf.getImageableHeight();
+
+ g.setColor(Color.black);
+ g.drawString(((pf.getOrientation() == PageFormat.PORTRAIT)
+ ? "Portrait" : "Landscape"),
+ (int) (ix + iw / 2), (int) (iy + ih / 2));
+ g.draw(new Ellipse2D.Double(ix, iy, iw, ih));
+ }
+ };
+
+ Book book = new Book();
+ PageFormat pf = pjob.defaultPage();
+ pf.setOrientation(PageFormat.PORTRAIT);
+ book.append(p, pf);
+ pf = pjob.defaultPage();
+ pf.setOrientation(PageFormat.LANDSCAPE);
+ book.append(p, pf);
+ pjob.setPageable(book);
+
+ try {
+ pjob.print();
+ } catch (PrinterException ex) {
+ ex.printStackTrace();
+ String msg = "PrinterException: " + ex.getMessage();
+ PassFailJFrame.forceFail(msg);
+ }
+ });
+ return btn;
}
}