2012-01-13 6 views
21

私は現在Javaアプリケーションを開発中です。ポップアップウィンドウをJavaで作る方法

テキスト領域とボタンを含む新しいウィンドウを表示したいとします。

ご意見はありますか?

+4

多分 'JOptionPane.showInputDialog(null、"これはメッセージです "、"これがデフォルトのテキストです) '? – fireshadow52

+0

この質問が解決するように答えを記入してください。 – Ungeheuer

答えて

12

ちょっと私が覚えているところから...
カスタムウィンドウが必要な場合は、新しいフレームを作成して、メインウィンドウと同じように表示させることができます。

How to Make Dialogs

あなたが全体の多くより少ない労力で探している機能を提供することができる場合があります Javaはまた、あなたがここにチェックアウトすることができます偉大なダイアログライブラリを持っています。

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!"); 

あなたは、ユーザーの選択を制限するために、気にしない場合、あなたは少ない引数を取るか、オブジェクトの配列にNULLを指定showInputDialogメソッドの形式を使用できます。 Javaのルックアンドフィールには、テキストフィールドを持っており、このようになりますダイアログでの可能性の結果の場合はnull代入する:

+0

私は新しいフレームをすることができますしたいと思いますあなたはそれを行う方法を教えてくださいthx btw? – Carlo

+0

私が上に書いた例は、あなたにそれを行う方法を示すために得ることができるほど明確かつ簡潔です。例を超えてカスタマイズしたい場合は、Java Docsを見てください。 – Prediluted

27

同じ答え:JOptionpaneを例に:)

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); 
      } 
     }); 
    } 
} 

enter image description here

0
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(); 
       } 
      } 
     }); 
    } 

} 
+7

ええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ、適切なLayoutManagerのタスクc)updateComponentTreeは必要ありません – kleopatra

0

のJOptionPaneまたはSWTシェルを使用してみてください。

関連する問題