如何指定JOptionPane的位置。任何人都可以创建一个扩展JOptionPane.showInputDialog的类,它也会占据x,y位置吗?
答案 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);