Multiple input in JOptionPane.showInputDialog

JavaSwingJoptionpane

Java Problem Overview


Is there a way to create multiple input in JOptionPane.showInputDialog instead of just one input?

Java Solutions


Solution 1 - Java

Yes. You know that you can put any Object into the Object parameter of most JOptionPane.showXXX methods, and often that Object happens to be a JPanel.

In your situation, perhaps you could use a JPanel that has several JTextFields in it:

import javax.swing.*;

public class JOptionPaneMultiInput {
   public static void main(String[] args) {
      JTextField xField = new JTextField(5);
      JTextField yField = new JTextField(5);
      
      JPanel myPanel = new JPanel();
      myPanel.add(new JLabel("x:"));
      myPanel.add(xField);
      myPanel.add(Box.createHorizontalStrut(15)); // a spacer
      myPanel.add(new JLabel("y:"));
      myPanel.add(yField);
      
      int result = JOptionPane.showConfirmDialog(null, myPanel, 
               "Please Enter X and Y Values", JOptionPane.OK_CANCEL_OPTION);
      if (result == JOptionPane.OK_OPTION) {
         System.out.println("x value: " + xField.getText());
         System.out.println("y value: " + yField.getText());
      }
   }
}

Solution 2 - Java

this is my solution

JTextField username = new JTextField();
JTextField password = new JPasswordField();
Object[] message = {
	"Username:", username,
	"Password:", password
};

int option = JOptionPane.showConfirmDialog(null, message, "Login", JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION) {
	if (username.getText().equals("h") && password.getText().equals("h")) {
		System.out.println("Login successful");
	} else {
		System.out.println("login failed");
	}
} else {
	System.out.println("Login canceled");
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsiaoooView Question on Stackoverflow
Solution 1 - JavaHovercraft Full Of EelsView Answer on Stackoverflow
Solution 2 - JavasmidhonzaView Answer on Stackoverflow