Как я могу указать позицию JOptionPane. Может ли кто-нибудь создать класс, расширяющий JOptionPane.showInputDialog, который также принимает позицию x, y?
Позиция JOptionPane showInputDialog
comment
Я не думаю, что это возможно.
- person Mob   schedule 21.03.2012
comment
Почему позиция по умолчанию относительно родительского компонента неприемлема?
- person Andrew Thompson   schedule 21.03.2012
comment
+1, вопрос сегодня добавил кое-что к моим знаниям :-)
- person nIcE cOw   schedule 21.03.2012
Ответы (2)
Вы можете использовать JOptionPane. метод setLocation(...). ИЛИ Вместо использования JOptionPane
вы можете расширить JDialog, а затем укажите его расположение на экране.
Вот один пример рабочего кода, рекомендованный @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);
}
}
person
nIcE cOw
schedule
21.03.2012
Разве в JDialog по умолчанию ничего нет?
- person Perry Monschau; 21.03.2012
Да, это правда, но это может дать функциональность, эквивалентную
JOptionPane
, иначе вы можете использовать метод setLocation(...)
для экземпляра JOptionPane
, как указано в моем ответе.
- person nIcE cOw; 21.03.2012
@Downvoter: Не поленитесь поделиться своей мудростью по теме для отрицательного голоса. Буду очень признателен за то, что узнал что-то новое, если что-то не так в моем объяснении :-)
- person nIcE cOw; 05.11.2014
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);
person
Hovercraft Full Of Eels
schedule
21.03.2012