The question follows the horizontal rule; my own answer precedes it.
Based on help from Oscar Reyes, I crafted this solution:
import javax.swing.JOptionPane;
import javax.swing.JFrame;
public class MyApp extends JFrame {
public static void main(String [] args) {
new MyApp();
}
public MyApp() {
super("MyApp");
setUndecorated(true);
setVisible(true);
setLocationRelativeTo(null);
String i = JOptionPane.showInputDialog(this, "Enter your name:", getTitle(), JOptionPane.QUESTION_MESSAGE);
if(null != i) {
JOptionPane.showInputDialog(this, "Your name is:", getTitle(), JOptionPane.INFORMATION_MESSAGE, null, null, i.concat(i));
}
dispose();
}
}
Notice I display my output in a JOptionPane.showInputDialog also. This way the output is highlighted in a text field so I can simply press CTRL+C to copy the output to the system clipboard and them press ESC to dismiss the application.
I've created a trivial GUI for my trivial application. My application prompts for a single input with a JOptionPane.showInputDialog
, performs a calculation, and then displays a single output with a JOptionPane.showMessageDialog
. I sometimes switch to a maximized browser window or something else to copy from, and then want to switch back to my JOptionPane dialog to paste into.
I want to have my JOptionPane dialog show up as a task on the taskbar so I could switch to it like nearly any other running program. I prefer JOptionPane's simplicity, rather than having to create a JFrame, a FlowLayout, an Icon, a JTextField, a JButton, an ActionListener, and so on, and so on.
JOptionPane.show[whatever]dialog()
?No
Not exactly one liner ( but some extra 6 lines :P )
I bet you cam put all this in a utlity method pretty easy and call it whenever you need it with a single call.
The following code would add a taskbar for your app.
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class OptionTest {
public static void main ( String [] args ) {
JFrame frame = new JFrame("My dialog asks....");
frame.setUndecorated( true );
frame.setVisible( true );
frame.setLocationRelativeTo( null );
String message = JOptionPane.showInputDialog(frame,
"Would this be enough?.",
"My dialog asks....",
JOptionPane.INFORMATION_MESSAGE);
System.out.println( "Got " + message );
frame.dispose();
}
}
By the way in Windows Vista, I can switch to the OptionPane using Alt+Tab without anything else ( although I cannot see it in the taskbar as you said )