I am currently developing a java application.
I want to show a new Window which contains a text area and a button.
Do you have any ideas?
36 Answers
The same answer : JOptionpane with an example :)
package experiments; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class CreateDialogFromOptionPane { public static void main(final String[] args) { final JFrame parent = new JFrame(); JButton button = new JButton(); button.setText("Click me to show dialog!"); parent.add(button); parent.pack(); parent.setVisible(true); button.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { String name = JOptionPane.showInputDialog(parent, "What is your name?", null); } }); } } 
Hmm it has been a little while but from what I remember...
If you want a custom window you can just make a new frame and make it show up just like you would with the main window. Java also has a great dialog library that you can check out here:
That may be able to give you the functionality you are looking for with a whole lot less effort.
Object[] possibilities = {"ham", "spam", "yam"}; String s = (String)JOptionPane.showInputDialog( frame, "Complete the sentence:\n" + "\"Green eggs and...\"", "Customized Dialog", JOptionPane.PLAIN_MESSAGE, icon, possibilities, "ham"); //If a string was returned, say so. if ((s != null) && (s.length() > 0)) { setLabel("Green eggs and... " + s + "!"); return; } //If you're here, the return value was null/empty. setLabel("Come on, finish the sentence!"); If you do not care to limit the user's choices, you can either use a form of the showInputDialog method that takes fewer arguments or specify null for the array of objects. In the Java look and feel, substituting null for possibilities results in a dialog that has a text field and looks like this:
2Check out Swing Dialogs (mainly focused on JOptionPane, as mentioned by @mcfinnigan).
public class JSONPage { Logger log = Logger.getLogger("com.prodapt.autotest.gui.design.EditTestData"); public static final JFrame JSONFrame = new JFrame(); public final JPanel jPanel = new JPanel(); JLabel IdLabel = new JLabel("JSON ID*"); JLabel DataLabel = new JLabel("JSON Data*"); JFormattedTextField JId = new JFormattedTextField("Auto Generated"); JTextArea JData = new JTextArea(); JButton Cancel = new JButton("Cancel"); JButton Add = new JButton("Add"); public void JsonPage() { JSONFrame.getContentPane().add(jPanel); JSONFrame.add(jPanel); JSONFrame.setSize(400, 250); JSONFrame.setResizable(false); JSONFrame.setVisible(false); JSONFrame.setTitle("Add JSON Data"); JSONFrame.setLocationRelativeTo(null); jPanel.setLayout(null); JData.setWrapStyleWord(true); JId.setEditable(false); IdLabel.setBounds(20, 30, 120, 25); JId.setBounds(100, 30, 120, 25); DataLabel.setBounds(20, 60, 120, 25); JData.setBounds(100, 60, 250, 75); Cancel.setBounds(80, 170, 80, 30); Add.setBounds(280, 170, 50, 30); jPanel.add(IdLabel); jPanel.add(JId); jPanel.add(DataLabel); jPanel.add(JData); jPanel.add(Cancel); jPanel.add(Add); SwingUtilities.updateComponentTreeUI(JSONFrame); Cancel.addActionListener(new ActionListener() { @SuppressWarnings("deprecation") @Override public void actionPerformed(ActionEvent e) { JData.setText(""); JSONFrame.hide(); TestCasePage.testCaseFrame.show(); } }); Add.addActionListener(new ActionListener() { @SuppressWarnings("deprecation") @Override public void actionPerformed(ActionEvent e) { try { PreparedStatement pStatement = DAOHelper.getInstance() .createJSON( ConnectionClass.getInstance() .getConnection()); pStatement.setString(1, null); if (JData.getText().toString().isEmpty()) { JOptionPane.showMessageDialog(JSONFrame, "Must Enter JSON Path"); } else { // System.out.println(eleSelectBy); pStatement.setString(2, JData.getText()); pStatement.executeUpdate(); JOptionPane.showMessageDialog(JSONFrame, "!! Added !!"); log.info("JSON Path Added"+JData); JData.setText(""); JSONFrame.hide(); } } catch (SQLException e1) { JData.setText(""); log.info("Error in Adding JSON Path"); e1.printStackTrace(); } } }); } } 1Try Using JOptionPane or Swt Shell .