JOptionPane showInputDialog的位置

时间:2012-03-21 15:38:12

标签: java swing joptionpane

如何指定JOptionPane的位置。任何人都可以创建一个扩展JOptionPane.showInputDialog的类,它也会占据x,y位置吗?

2 个答案:

答案 0 :(得分:7)

您可以使用JOptionPane's setLocation(...)方法。或者您可以扩展JDialog,而不是使用JOptionPane,然后在屏幕上指定它的位置。

以下是@HovercraftFullOfEels建议的一个工作代码示例,这个示例将帮助您按照要求从用户那里获得输入:

import javax.swing.*;

public class OptionPaneLocation 
{   
    private void createAndDisplayGUI()
    {       
        JOptionPane optionPane = new JOptionPane("Its me"
                                    , JOptionPane.PLAIN_MESSAGE
                                    , JOptionPane.DEFAULT_OPTION
                                    , null, null, "Please ENTER your NAME here");
        optionPane.setWantsInput(true);             
        JDialog dialog = optionPane.createDialog(null, "TEST");
        dialog.setLocation(10, 20);
        dialog.setVisible(true);
        System.out.println(optionPane.getInputValue());
    }

    public static void main(String... args)
    {
        Runnable runnable = new Runnable()
        {
            public void run()
            {
                new OptionPaneLocation().createAndDisplayGUI();
            }
        };
        SwingUtilities.invokeLater(runnable);
    }
}

答案 1 :(得分:5)

JOptionPane可以很容易地变成JDialog(查看JOptionPane API,它会告诉你如何举例)。然后,您可以设置创建的JDialog的位置。

例如,来自文档:

 JOptionPane pane = new JOptionPane(arguments);
 pane.set.Xxxx(...); // Configure
 JDialog dialog = pane.createDialog(parentComponent, title);
 dialog.setLocation(....);  // added!
 dialog.setModal(....);  // added! Do you want it modal or not?
 // ....
 dialog.setVisible(true);