2016-03-29 14 views
1

私は、JavaプロジェクトでさまざまなJTextFieldを検証できるようにしたいと考えています。 1つは、ユーザーが特定のフィールドに番号を入力することを保証することです。 私が持っている別の問題は、送信ボタンが押されたときにフィールド内の1234などの特定の番号を検証できることです。eclipseでJTextFieldを検証する方法は?

別のクラスにメソッドを作成しなければならない場合は、そのメソッドを自分のJTextFieldに使用するためのGUIクラスにどのように呼び出すでしょうか。

私はJavaにはかなり新しく、このようなことをいくつか見つけて、どんな助けでも大歓迎です。私はそれがテキストフィールドに番号1234を受け入れるようにしたい、この特定のテキストフィールドに

import java.awt.BorderLayout; 

public class CashDialog extends JDialog { 

    private final JPanel contentPanel = new JPanel(); 
    private JTextField txtEmilysBistro; 
    private JTextField textconfirmNumber; 
    private String confirmNumber; 
    private JButton btnSubmit; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     try { 
      CashDialog dialog = new CashDialog(); 
      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
      dialog.setVisible(true); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    /** 
    * Create the dialog. 
    */ 
    public CashDialog() { 

     this.confirmNumber = confirmNumber; 

     setBounds(100, 100, 526, 372); 
     getContentPane().setLayout(new BorderLayout()); 
     contentPanel.setBackground(new Color(255, 0, 153)); 
     contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     getContentPane().add(contentPanel, BorderLayout.CENTER); 
     contentPanel.setLayout(null); 
     { 
      txtEmilysBistro = new JTextField(); 
      txtEmilysBistro.setBackground(new Color(255, 0, 153)); 
      txtEmilysBistro.setHorizontalAlignment(SwingConstants.CENTER); 
      txtEmilysBistro.setForeground(new Color(255, 255, 255)); 
      txtEmilysBistro.setFont(new Font("AR ESSENCE", Font.PLAIN, 50)); 
      txtEmilysBistro.setEditable(false); 
      txtEmilysBistro.setText("Emily's Bistro"); 
      txtEmilysBistro.setBounds(0, 0, 504, 57); 
      contentPanel.add(txtEmilysBistro); 
      txtEmilysBistro.setColumns(10); 
     } 

     JTextArea txtrConfirm = new JTextArea(); 
     txtrConfirm.setForeground(new Color(255, 255, 255)); 
     txtrConfirm.setBackground(new Color(255, 0, 153)); 
     txtrConfirm.setEditable(false); 
     txtrConfirm.setFont(new Font("AR ESSENCE", Font.PLAIN, 25)); 
     txtrConfirm.setText("Please allow your waiter/waitress to enter   the confirmation number."); 
     txtrConfirm.setBounds(54, 73, 407, 77); 
     contentPanel.add(txtrConfirm); 
     txtrConfirm.setLineWrap(true); 

     textconfirmNumber = new JTextField(); 
     textconfirmNumber.setFont(new Font("AR ESSENCE", Font.PLAIN, 30)); 
     textconfirmNumber.setBounds(147, 148, 227, 47); 
     contentPanel.add(textconfirmNumber); 
     textconfirmNumber.setColumns(10); 

     btnSubmit = new JButton("Submit"); 
     btnSubmit.setBackground(new Color(102, 51, 255)); 
     btnSubmit.setForeground(new Color(255, 255, 255)); 
     btnSubmit.setFont(new Font("AR ESSENCE", Font.PLAIN, 25)); 
     btnSubmit.setBounds(184, 211, 162, 29); 
     contentPanel.add(btnSubmit); 

    } 
} 

:私が持っている分で

+0

一部のコードを表示してください。質問をする前にまずそれを試してみてください。 – Francisunoxx

+0

私は試しました...ボタンのactionlisternerを使用してif文などを使用しようとしています。私は文字通り自分のフィールドのバリデーションについてどう考えているのかわかりません... – EJHall

+0

ここに完全なコードを投稿してください。 – Francisunoxx

答えて

0

コードにはいくつか問題がありますが、それはポイントの横にあります。あなたの質問に具体的に対処するには、ここでは1つのアプローチです。それを許して、それを多分扱いたいと思って、文字列を比較するのではなく整数を取得していることを確認してください。しかし、それでもあなたは送信ボタンにリスナーを追加する方法です。

 btnSubmit.addActionListener(new ActionListener() 
     { 

       @Override 
       public void actionPerformed(ActionEvent arg0) 
       { 
        final String data = txtrConfirm.getText(); 
        if(data.compareTo("1234") != 0) 
        { 
         // alert the user 
        } 
        else 
        { 
         // data is good, do something with it 
        } 
       } 

     }); 
+0

これはIF文を追加したもので、動作するようです。他の問題について詳しく説明できますか? – EJHall

+0

コードをコンパイルするときに気がついたのはちょっとしたことでした。 – Craig

+0

UggがEnterキーを押して復帰した後、編集に時間がかかりすぎました:-)。コードをコンパイルする際に気がついたのはちょっとしたことです。いくつかの輸入がありませんが、それを疑う余地はありません。また、 "this.confirmNumber = confirmNumber;"の意図がわからないです。それはそれ自身と同じに設定されています。 – Craig

関連する問題