JOptionPane и получение текста с ввода - PullRequest
2 голосов
/ 01 декабря 2011

Я создал кнопку, которая открывает JOptionPane.Он позволяет пользователю вводить string..>> String str = JOptionPane.showInputDialog Как получить текст, который пользователь вводит в область joption, и использовать его для поиска по объектам пользователя?

Большое спасибо

Ответы [ 3 ]

6 голосов
/ 01 декабря 2011

Возвращенная строка - это то, что пользователь ввел, или ноль, если пользователь решил отменить:

String whatTheUserEntered = JOptionPane.showInputDialog(...);
if (whatTheUserEntered == null) {
    System.out.println("The user canceled");
}
1 голос
/ 24 февраля 2014

Хотя @JB Низет уже дал хороший ответ. Я хотел бы добавить пример короткого кода для справки, если кто-то снова ищет эту проблему.

public class JOptionPaneExample

{ частная двойная цена;

private JTextField priceField;

private JLabel priceLabel;

public JOptionPaneExample()
{
    priceField = new JTextField(10);
}

public void createAndDisplayGUI()
{
    int selection = JOptionPane.showConfirmDialog(null, getPanel(), "Price Form : ", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);

    if (selection == JOptionPane.OK_OPTION)
    {
        price = Double.valueOf(priceField.getText());

        JOptionPane.showMessageDialog(null, "Price is : " + Double.toString(price), "Price : ", JOptionPane.PLAIN_MESSAGE);
    }
    else if (selection == JOptionPane.CANCEL_OPTION)
    {
        // Do something here.
    }
}

private JPanel getPanel()
{
    JPanel basePanel = new JPanel();
    basePanel.setOpaque(true);
    basePanel.setBackground(Color.BLUE.darker());

    JPanel centerPanel = new JPanel();
    centerPanel.setLayout(new GridLayout(3, 2, 5, 5));
    centerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    centerPanel.setOpaque(true);
    centerPanel.setBackground(Color.WHITE);

    priceLabel = new JLabel("Enter Price : ");

    centerPanel.add(priceLabel);
    centerPanel.add(priceField);

    basePanel.add(centerPanel);

    return basePanel;
}

}

Тот же код можно найти этот блог

0 голосов
/ 01 декабря 2011

Ваша цель немного неясна, но насколько я понимаю, вы просто хотите узнать, как вводится информация, это можно сделать, просто вызвав переменную.

Чтобы увидеть, что находится в переменной, используйте System.out.println (имя переменной);

Пожалуйста, укажите userobjects?

Надеюсь, это поможет.

...