8340494: Open some dialog awt tests 4
Reviewed-by: dnguyen, honkar
This commit is contained in:
parent
40a44e1c1b
commit
60af9078fb
141
test/jdk/java/awt/Container/ActivateOnFocusTest.java
Normal file
141
test/jdk/java/awt/Container/ActivateOnFocusTest.java
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 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
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.awt.Button;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Point;
|
||||
import java.awt.Robot;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4111098
|
||||
* @key headful
|
||||
* @summary Test for no window activation on control requestFocus()
|
||||
* @run main/timeout=30 ActivateOnFocusTest
|
||||
*/
|
||||
|
||||
public class ActivateOnFocusTest {
|
||||
static MyFrame mf1;
|
||||
static Point p;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
try {
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
mf1 = new MyFrame();
|
||||
mf1.setBounds(100, 100, 300, 300);
|
||||
mf1.mc1.requestFocusInWindow();
|
||||
});
|
||||
|
||||
Robot robot = new Robot();
|
||||
robot.waitForIdle();
|
||||
robot.delay(1000);
|
||||
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
p = mf1.mb.getLocationOnScreen();
|
||||
});
|
||||
|
||||
robot.waitForIdle();
|
||||
|
||||
robot.mouseMove(p.x + 5, p.y + 5);
|
||||
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.waitForIdle();
|
||||
robot.delay(250);
|
||||
|
||||
} finally {
|
||||
if (mf1 != null) {
|
||||
EventQueue.invokeAndWait(mf1::dispose);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyFrame extends Frame implements ActionListener {
|
||||
public Button mb;
|
||||
public MyComponent mc1;
|
||||
public MyComponent mc2;
|
||||
|
||||
public MyFrame() {
|
||||
super();
|
||||
setTitle("ActivateOnFocusTest");
|
||||
setLayout(new FlowLayout());
|
||||
mb = new Button("Pull");
|
||||
mb.addActionListener(this);
|
||||
add(mb);
|
||||
mc1 = new MyComponent(Color.red);
|
||||
add(mc1);
|
||||
mc2 = new MyComponent(Color.blue);
|
||||
add(mc2);
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowActivated(WindowEvent e) {
|
||||
mc1.requestFocusInWindow();
|
||||
}
|
||||
@Override
|
||||
public void windowDeactivated(WindowEvent e) {
|
||||
mc2.requestFocusInWindow();
|
||||
}
|
||||
});
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
MyFrame mf2 = new MyFrame();
|
||||
mf2.setBounds(200, 200, 300, 300);
|
||||
mf2.setVisible(true);
|
||||
mf2.mc1.requestFocusInWindow();
|
||||
}
|
||||
}
|
||||
|
||||
class MyComponent extends Component {
|
||||
public MyComponent(Color c) {
|
||||
super();
|
||||
setBackground(c);
|
||||
}
|
||||
|
||||
public void paint(Graphics g) {
|
||||
Dimension d = getSize();
|
||||
g.setColor(getBackground());
|
||||
g.fillRect(0, 0, d.width, d.height);
|
||||
}
|
||||
|
||||
public boolean isFocusTraversable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(50, 50);
|
||||
}
|
||||
}
|
244
test/jdk/java/awt/Container/MouseEnteredTest.java
Normal file
244
test/jdk/java/awt/Container/MouseEnteredTest.java
Normal file
@ -0,0 +1,244 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 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
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Point;
|
||||
import java.awt.Robot;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.JRadioButtonMenuItem;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.UIManager;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4159745
|
||||
* @key headful
|
||||
* @summary Mediumweight popup dragging broken
|
||||
* @run main MouseEnteredTest
|
||||
*/
|
||||
|
||||
public class MouseEnteredTest extends JFrame implements ActionListener {
|
||||
static volatile MouseEnteredTest test;
|
||||
static volatile Point p;
|
||||
static volatile Point p2;
|
||||
|
||||
static String strMotif = "Motif";
|
||||
static String motifClassName = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
|
||||
static char cMotif = 'o';
|
||||
|
||||
static String strWindows = "Windows";
|
||||
static String windowsClassName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
|
||||
static char cWindows = 'W';
|
||||
|
||||
static String strMetal = "Metal";
|
||||
static String metalClassName = "javax.swing.plaf.metal.MetalLookAndFeel";
|
||||
static char cMetal = 'M';
|
||||
|
||||
static JMenu m;
|
||||
static JMenu menu;
|
||||
|
||||
static MouseListener ml = new MouseEnteredTest.MouseEventListener();
|
||||
|
||||
public MouseEnteredTest() {
|
||||
setTitle("MouseEnteredTest");
|
||||
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
|
||||
setJMenuBar(getMyMenuBar());
|
||||
getContentPane().add("Center", new JTextArea());
|
||||
setSize(400, 500);
|
||||
setLocationRelativeTo(null);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
try {
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
test = new MouseEnteredTest();
|
||||
});
|
||||
|
||||
Robot robot = new Robot();
|
||||
robot.setAutoWaitForIdle(true);
|
||||
robot.waitForIdle();
|
||||
robot.delay(1000);
|
||||
|
||||
EventQueue.invokeAndWait(() -> {
|
||||
p = m.getLocationOnScreen();
|
||||
p2 = menu.getLocationOnScreen();
|
||||
});
|
||||
robot.waitForIdle();
|
||||
robot.delay(250);
|
||||
robot.mouseMove(p.x + 5, p.y + 10);
|
||||
robot.waitForIdle();
|
||||
|
||||
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||
for (int i = p.x; i < p2.x + 10; i = i + 2) {
|
||||
robot.mouseMove(i, p2.y + 10);
|
||||
}
|
||||
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.delay(2000);
|
||||
|
||||
if (m.isPopupMenuVisible()) {
|
||||
throw new RuntimeException("First menu is showing. Test Failed.");
|
||||
}
|
||||
} finally {
|
||||
if (test != null) {
|
||||
EventQueue.invokeAndWait(test::dispose);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public JMenuBar getMyMenuBar() {
|
||||
JMenuBar menubar;
|
||||
JMenuItem menuItem;
|
||||
|
||||
menubar = GetLNFMenuBar();
|
||||
|
||||
menu = menubar.add(new JMenu("Test"));
|
||||
menu.setName("Test");
|
||||
menu.addMouseListener(ml);
|
||||
menu.setMnemonic('T');
|
||||
menuItem = menu.add(new JMenuItem("Menu Item"));
|
||||
menuItem.addActionListener(this);
|
||||
menuItem.setMnemonic('M');
|
||||
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.ALT_MASK));
|
||||
|
||||
JRadioButtonMenuItem mi = new JRadioButtonMenuItem("Radio Button");
|
||||
mi.addActionListener(this);
|
||||
mi.setMnemonic('R');
|
||||
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.ALT_MASK));
|
||||
menu.add(mi);
|
||||
|
||||
JCheckBoxMenuItem mi1 = new JCheckBoxMenuItem("Check Box");
|
||||
mi1.addActionListener(this);
|
||||
mi1.setMnemonic('C');
|
||||
mi1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.ALT_MASK));
|
||||
menu.add(mi1);
|
||||
return menubar;
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String str = e.getActionCommand();
|
||||
if (str.equals(metalClassName) || str.equals(windowsClassName) || str.equals(motifClassName)) {
|
||||
changeLNF(str);
|
||||
} else {
|
||||
System.out.println("ActionEvent: " + str);
|
||||
}
|
||||
}
|
||||
|
||||
public void changeLNF(String str) {
|
||||
System.out.println("Changing LNF to " + str);
|
||||
try {
|
||||
UIManager.setLookAndFeel(str);
|
||||
SwingUtilities.updateComponentTreeUI(this);
|
||||
pack();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public JMenuBar GetLNFMenuBar() {
|
||||
JMenuBar mbar = new JMenuBar();
|
||||
m = new JMenu("Look and Feel");
|
||||
m.setName("Look and Feel");
|
||||
m.addMouseListener(ml);
|
||||
m.setMnemonic('L');
|
||||
ButtonGroup bg = new ButtonGroup();
|
||||
|
||||
JRadioButtonMenuItem mi;
|
||||
|
||||
mi = new JRadioButtonMenuItem(strMetal);
|
||||
mi.addActionListener(this);
|
||||
mi.setActionCommand(metalClassName);
|
||||
mi.setMnemonic(cMetal);
|
||||
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
|
||||
mi.setSelected(true);
|
||||
bg.add(mi);
|
||||
m.add(mi);
|
||||
|
||||
mi = new JRadioButtonMenuItem(strWindows);
|
||||
mi.addActionListener(this);
|
||||
mi.setActionCommand(windowsClassName);
|
||||
mi.setMnemonic(cWindows);
|
||||
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
|
||||
bg.add(mi);
|
||||
m.add(mi);
|
||||
|
||||
mi = new JRadioButtonMenuItem(strMotif);
|
||||
mi.addActionListener(this);
|
||||
mi.setActionCommand(motifClassName);
|
||||
mi.setMnemonic(cMotif);
|
||||
mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK));
|
||||
bg.add(mi);
|
||||
m.add(mi);
|
||||
|
||||
mbar.add(m);
|
||||
return mbar;
|
||||
}
|
||||
|
||||
static class MouseEventListener implements MouseListener, MouseMotionListener {
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
System.out.println("In mouseClicked for " + e.getComponent().getName());
|
||||
}
|
||||
|
||||
public void mousePressed(MouseEvent e) {
|
||||
Component c = e.getComponent();
|
||||
System.out.println("In mousePressed for " + c.getName());
|
||||
}
|
||||
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
System.out.println("In mouseReleased for " + e.getComponent().getName());
|
||||
}
|
||||
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
System.out.println("In mouseEntered for " + e.getComponent().getName());
|
||||
System.out.println("MouseEvent:" + e.getComponent());
|
||||
}
|
||||
|
||||
public void mouseExited(MouseEvent e) {
|
||||
System.out.println("In mouseExited for " + e.getComponent().getName());
|
||||
}
|
||||
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
System.out.println("In mouseDragged for " + e.getComponent().getName());
|
||||
}
|
||||
|
||||
public void mouseMoved(MouseEvent e) {
|
||||
System.out.println("In mouseMoved for " + e.getComponent().getName());
|
||||
}
|
||||
}
|
||||
}
|
315
test/jdk/java/awt/Dialog/ModalExcludedTest.java
Normal file
315
test/jdk/java/awt/Dialog/ModalExcludedTest.java
Normal file
@ -0,0 +1,315 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 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
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Button;
|
||||
import java.awt.Dialog;
|
||||
import java.awt.FileDialog;
|
||||
import java.awt.Frame;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.JobAttributes;
|
||||
import java.awt.PageAttributes;
|
||||
import java.awt.Panel;
|
||||
import java.awt.PrintJob;
|
||||
import java.awt.TextArea;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.Window;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
|
||||
import sun.awt.SunToolkit;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4813288 4866704
|
||||
* @summary Test for "modal exclusion" functionality
|
||||
* @library /java/awt/regtesthelpers /test/lib
|
||||
* @build PassFailJFrame
|
||||
* @modules java.desktop/sun.awt
|
||||
* @run main/manual ModalExcludedTest
|
||||
*/
|
||||
|
||||
public class ModalExcludedTest {
|
||||
private static final String INSTRUCTIONS = """
|
||||
1. Press 'Modal dialog w/o modal excluded' button below
|
||||
A window, a modeless dialog and a modal dialog will appear
|
||||
Make sure the frame and the modeless dialog are inaccessible,
|
||||
i.e. receive no mouse and keyboard events. MousePressed and
|
||||
KeyPressed events are logged in the text area - use it
|
||||
to watch events
|
||||
Close all 3 windows
|
||||
|
||||
2. Press 'Modal dialog w/ modal excluded' button below
|
||||
Again, 3 windows will appear (frame, dialog, modal dialog),
|
||||
but the frame and the dialog would be modal excluded, i.e.
|
||||
behave the same way as there is no modal dialog shown. Verify
|
||||
this by pressing mouse buttons and typing any keys. The
|
||||
RootFrame would be modal blocked - verify this too
|
||||
Close all 3 windows
|
||||
|
||||
3. Repeat step 2 for file and print dialogs using appropriate
|
||||
buttons below
|
||||
|
||||
Notes: if there is no printer installed in the system you may not
|
||||
get any print dialogs
|
||||
""";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
PassFailJFrame.builder()
|
||||
.title("ModalExcludedTest")
|
||||
.instructions(INSTRUCTIONS)
|
||||
.rows(10)
|
||||
.columns(35)
|
||||
.testUI(ModalExcludedTest::createGUIs)
|
||||
.build()
|
||||
.awaitAndCheck();
|
||||
}
|
||||
|
||||
public static Frame createGUIs() {
|
||||
final Frame f = new Frame("RootFrame");
|
||||
f.setBounds(0, 0, 480, 500);
|
||||
f.setLayout(new BorderLayout());
|
||||
|
||||
final TextArea messages = new TextArea();
|
||||
|
||||
final WindowListener wl = new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent ev) {
|
||||
if (ev.getSource() instanceof Window) {
|
||||
((Window) ev.getSource()).dispose();
|
||||
}
|
||||
}
|
||||
};
|
||||
final MouseListener ml = new MouseAdapter() {
|
||||
public void mousePressed(MouseEvent ev) {
|
||||
messages.append(ev + "\n");
|
||||
}
|
||||
};
|
||||
final KeyListener kl = new KeyAdapter() {
|
||||
public void keyPressed(KeyEvent ev) {
|
||||
messages.append(ev + "\n");
|
||||
}
|
||||
};
|
||||
|
||||
if (!SunToolkit.isModalExcludedSupported()) {
|
||||
throw new jtreg.SkippedException("Modal exclude is not supported on this platform.");
|
||||
}
|
||||
|
||||
messages.addMouseListener(ml);
|
||||
messages.addKeyListener(kl);
|
||||
f.add(messages, BorderLayout.CENTER);
|
||||
|
||||
Panel buttons = new Panel();
|
||||
buttons.setLayout(new GridLayout(6, 1));
|
||||
|
||||
Button b = new Button("Modal dialog w/o modal excluded");
|
||||
b.addActionListener(ev -> {
|
||||
Frame ff = new Frame("Non-modal-excluded frame");
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
ff.setVisible(true);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Non-modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
|
||||
Dialog d = new Dialog(f, "Modal dialog", true);
|
||||
d.setBounds(600, 200, 200, 100);
|
||||
d.addWindowListener(wl);
|
||||
d.addMouseListener(ml);
|
||||
d.addKeyListener(kl);
|
||||
d.setVisible(true);
|
||||
});
|
||||
buttons.add(b);
|
||||
|
||||
Button c = new Button("Modal dialog w/ modal excluded");
|
||||
c.addActionListener(ev -> {
|
||||
JFrame ff = new JFrame("Modal-excluded frame");
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
JMenuBar mb = new JMenuBar();
|
||||
JMenu m = new JMenu("Test menu");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
m.add("Test menu item");
|
||||
mb.add(m);
|
||||
ff.setJMenuBar(mb);
|
||||
// 1: set visible
|
||||
ff.setVisible(true);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
|
||||
// 2: set modal excluded
|
||||
SunToolkit.setModalExcluded(ff);
|
||||
|
||||
Dialog d = new Dialog(f, "Modal dialog", true);
|
||||
d.setBounds(600, 200, 200, 100);
|
||||
d.addWindowListener(wl);
|
||||
d.addMouseListener(ml);
|
||||
d.addKeyListener(kl);
|
||||
d.setVisible(true);
|
||||
});
|
||||
buttons.add(c);
|
||||
|
||||
Button c1 = new Button("Modal dialog before modal excluded");
|
||||
c1.addActionListener(ev -> {
|
||||
// 1: create dialog
|
||||
Dialog d = new Dialog(f, "Modal dialog", true);
|
||||
d.setBounds(600, 200, 200, 100);
|
||||
d.addWindowListener(wl);
|
||||
d.addMouseListener(ml);
|
||||
d.addKeyListener(kl);
|
||||
|
||||
// 2: create frame
|
||||
Frame ff = new Frame("Modal-excluded frame");
|
||||
// 3: set modal excluded
|
||||
SunToolkit.setModalExcluded(ff);
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
// 4: show frame
|
||||
ff.setVisible(true);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
|
||||
// 5: show dialog
|
||||
d.setVisible(true);
|
||||
});
|
||||
buttons.add(c1);
|
||||
|
||||
Button d = new Button("File dialog w/ modal excluded");
|
||||
d.addActionListener(ev -> {
|
||||
Frame ff = new Frame("Modal-excluded frame");
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
// 1: set modal excluded (peer is not created yet)
|
||||
SunToolkit.setModalExcluded(ff);
|
||||
// 2: set visible
|
||||
ff.setVisible(true);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
SunToolkit.setModalExcluded(dd);
|
||||
|
||||
Dialog d1 = new FileDialog(f, "File dialog");
|
||||
d1.setVisible(true);
|
||||
});
|
||||
buttons.add(d);
|
||||
|
||||
Button e = new Button("Native print dialog w/ modal excluded");
|
||||
e.addActionListener(ev -> {
|
||||
Frame ff = new Frame("Modal-excluded frame");
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
ff.setVisible(true);
|
||||
SunToolkit.setModalExcluded(ff);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
|
||||
JobAttributes jobAttributes = new JobAttributes();
|
||||
jobAttributes.setDialog(JobAttributes.DialogType.NATIVE);
|
||||
PageAttributes pageAttributes = new PageAttributes();
|
||||
PrintJob job = Toolkit.getDefaultToolkit().getPrintJob(f, "Test", jobAttributes, pageAttributes);
|
||||
});
|
||||
buttons.add(e);
|
||||
|
||||
Button g = new Button("Common print dialog w/ modal excluded");
|
||||
g.addActionListener(ev -> {
|
||||
Frame ff = new Frame("Modal-excluded frame");
|
||||
ff.setBounds(400, 0, 200, 100);
|
||||
ff.addWindowListener(wl);
|
||||
ff.addMouseListener(ml);
|
||||
ff.addKeyListener(kl);
|
||||
ff.setVisible(true);
|
||||
SunToolkit.setModalExcluded(ff);
|
||||
ff.dispose();
|
||||
// modal excluded must still be alive
|
||||
ff.setVisible(true);
|
||||
|
||||
Dialog dd = new Dialog(ff, "Modal-excluded dialog", false);
|
||||
dd.setBounds(500, 100, 200, 100);
|
||||
dd.addWindowListener(wl);
|
||||
dd.addMouseListener(ml);
|
||||
dd.addKeyListener(kl);
|
||||
dd.setVisible(true);
|
||||
|
||||
JobAttributes jobAttributes = new JobAttributes();
|
||||
jobAttributes.setDialog(JobAttributes.DialogType.COMMON);
|
||||
PageAttributes pageAttributes = new PageAttributes();
|
||||
PrintJob job = Toolkit.getDefaultToolkit().getPrintJob(f, "Test", jobAttributes, pageAttributes);
|
||||
});
|
||||
buttons.add(g);
|
||||
|
||||
f.add(buttons, BorderLayout.SOUTH);
|
||||
return f;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user