Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display JDateChooser in JOptionPane

I want to display a JDateChooser component inside an Option pane depending on some selection from the user. The point is that I tried getting the JDateChooser the way I want it to appear using next code:

JOptionPane.showInputDialog(null, new JDateChooser(),"Start date", JOptionPane.PLAIN_MESSAGE);

I tried with different kinds of JOptionPane variants but I can't figure out how to get this done, the user must be able to select the date and confirm by clicking a button so that I can retrieve that date and use it as a String.

I'd like to have something like this:

String s = JOptionPane.showInputDialog(null,"Text", "More Text", JOptionPane.INFORMATION_MESSAGE);

So that in that way I can get the selected date. I'm working with jcalendar-1.4.jar

like image 499
Josué Almonasi Avatar asked Feb 11 '16 18:02

Josué Almonasi


People also ask

How do I get output from JOptionPane?

message =JOptionPane. showInputDialog("Enter a line of text:"); In this single line the prompt is specified and the message is read.

Why do we use null in JOptionPane?

Shows a question-message dialog requesting input from the user parented to parentComponent . Passing null to it just indicates that there's not an associated "parent" dialog - ie, the dialog being displayed does not belong to another dialog.

What is the return type from invoking JOptionPane showInputDialog () method?

JOptionPane. showInputDialog() will return the string the user has entered if the user hits ok, and returns null otherwise.


1 Answers

I finally reached a solution that worked for me. I stared creating separately a DateChooser and a String and put them together in an Object array, then pass the object as argument for the JOptionPane.

JDateChooser jd = new JDateChooser();
String message ="Choose start date:\n";
Object[] params = {message,jd};
JOptionPane.showConfirmDialog(null,params,"Start date", JOptionPane.PLAIN_MESSAGE);

In order to get the date once the user clicks the "OK" button in the JOptionPane I implemented a SimpleDateFormat.

String s="";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
s=sdf.format(((JDateChooser)params[1]).getDate());//Casting params[1] makes me able to get its information

That implementation solved the problem the way I wanted, I hope you guys find this helpful.

like image 151
Josué Almonasi Avatar answered Oct 22 '22 15:10

Josué Almonasi