您可以做些什么来限制您的位置 JDialog 添加一个 ComponentListener 它移动时检查它的边界。如果您发现它位于所需区域之外,则将其位置设置为其他点。
JDialog
ComponentListener
package main; import java.awt.*; import java.awt.event.*; import javax.swing.JDialog; public class DialogListener { public static void main(String[] args) throws AWTException { final JDialog dialog = new JDialog(); dialog.setSize(300, 400); dialog.setVisible(true); Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(); final Rectangle screen = new Rectangle(scrnSize.width, 2*scrnSize.height - winSize.height); dialog.addComponentListener(new ComponentAdapter() { @Override public void componentMoved(ComponentEvent e) { if (!screen.contains(dialog.getBounds())) dialog.setLocation(300, 400); } }); } }
此示例将位置设置为固定点,以便说明方法的工作方式。在实际程序中,您应该将对话框移动到屏幕内的最近点。此外,如果你想让鼠标“锁定”到位,你可以看一下 Robot 用于以编程方式发出鼠标移动的类。
Robot