2016-07-16 8 views
0

スイングのフレームに2つのテキスト領域があり、その間にボタンが2つあり、ネットビーンを使用しています。スイングフレームがjボタンをクリックしても保持されないままになる

ボタンをクリックすると、から、getText()を使用してSQLクエリが取得されます。

SubmitData()で入力が処理されます(つまり、クエリの分割後にキーワードの綴りがチェックされます)。その方法の中では、出力をtextArea2に設定するのにsetText()を使用するだけです。

問題点: ボタンを押してもフレームが止まらないか保持されません。離れて行くように見えるdoesntの

void createUI() throws Exception 
{ 
    JFrame frame = new JFrame("JDBC All in One"); 

    // Layout of Main Window 
    Container c = frame.getContentPane(); 
    c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS)); 

    textArea1 = new JTextArea(10, 50); 
    textArea1.setBounds(10, 10, 30, 30); 

    btnInsert = new JButton("Submit"); 
    btnInsert.setBounds(10, 10, 10, 10); 
    btnInsert.addActionListener(this); 

    textArea2 = new JTextArea(10, 50); 
    textArea2.setBounds(10, 10, 30, 30); 

    JPanel pnlInput1 = new JPanel(); 
    JPanel pnlInput2 = new JPanel(); 
    JPanel pnlInput3 = new JPanel(); 

    pnlInput1.add(textArea1); 
    pnlInput3.add(btnInsert); 
    pnlInput2.add(textArea2); 

    frame.add(pnlInput1); 
    frame.add(pnlInput3); 
    frame.add(pnlInput2); 

    frame.setSize(400, 500); 
    frame.pack(); 
    frame.setVisible(true); 
} 

public void actionPerformed(ActionEvent evt) 

{ 
    String cmd = evt.getActionCommand(); 

    if (cmd.equals("Submit")) { 
     try { 
      SubmitData(); 
     } catch (Exception e) {} 

    } 
} 

public static void SubmitData() throws Exception { 

    s1 = textArea1.getText(); 

    String[] s2 = s1.split("\\s+"); 

    for (int i = 0; i < s2.length; i++) { 
     if (s2[i] .equals("elect")|| s2[i] .equals("selct") || s2[i].equals("slect")|| s2[i].equals("selec")|| s2[i].equals("seect") 

     { 
      textArea2.setText("use 'select' instead of " + s2[i]); 
      System.exit(0); 
     } 
     if (s2[i] == "updat" || s2[i] == "updae" || s2[i] == "updte" || s2[i] == "upate") { 
      textArea2.setText("use 'update' instead of " + s2[i]); 
      System.exit(0); 
     } 

     if (s2[i] == "delet" || s2[i] == "delte" || s2[i] == "elete" || s2[i] == "dlete") { 
      textArea2.setText("use 'delete' instead of " + s2[i]); 
      System.exit(0); 
     } 
     if (s2[i] == "fro" || s2[i] == "frm" || s2[i] == "fom") { 
      textArea2.setText("use 'from' instead of " + s2[i]); 
      System.exit(0); 
     } 
    } 
} 

編集 - 私は、.equalsで「==」あちこちに文字列の比較ですが変更された()が、問題:

は、ここに私のコードです。

+0

ようこそStackOverflow!回答を得るためのヒントをいくつか挙げておきます。 1.何か問題がない場合は、スタックトレース、エラーログなどを投稿してください。長すぎる場合は、適切なスニペットを[pastebin](http://pastebin.com/)のようなペーストサービスに投稿することは大丈夫です。私たちの視点から見ると、出力を表示しないと、ボタンを押したときにウィンドウが閉じた理由がわかりません! –

+0

2.質問の内容を編集するときに、内容を大きく変更しないようにしてください。 /などの入力用に編集する場合。それはいいですが、コンテンツを変更すると、一般的に「EDIT:」から始まる一番下の行が丁寧になり、人々はあなたが変更したものを知ります。 –

+0

3.コードを投稿するときは、[SSCCE](http://sscce.org/)を投稿することをお勧めします。これにより、人々がコードをすばやくテストできるようになります。非常に長く、必要なものすべてではないため、投稿した内容を利用することは非常に困難です。すべてのコードを投稿する必要がある場合はスニペットをポストし、次にポストをすべてポストします。 –

答えて

2

System.exit(0);は、JVMを終了します。あなたのフレームを維持したい場合はそれを削除します。 2番目の質問について

編集:あなたの最初のif 、条件が真のとき、他の人ifが実行されないようにするために、else ifしてifを交換してください。

for (int i = 0; i < s2.length; i++) { 
    if (s2[i] .equals("elect")|| s2[i] .equals("selct") || s2[i].equals("slect")|| s2[i].equals("selec")|| s2[i].equals("seect") 
    { 
     textArea2.setText("use 'select' instead of " + s2[i]); 
    } 
    else if (s2[i] == "updat" || s2[i] == "updae" || s2[i] == "updte" || s2[i] == "upate") { 
     textArea2.setText("use 'update' instead of " + s2[i]); 
    } 

    else if (s2[i] == "delet" || s2[i] == "delte" || s2[i] == "elete" || s2[i] == "dlete") { 
     textArea2.setText("use 'delete' instead of " + s2[i]); 
    } 
    else if (s2[i] == "fro" || s2[i] == "frm" || s2[i] == "fom") { 
     textArea2.setText("use 'from' instead of " + s2[i]); 
    } 
} 
+0

フレームを中断せずにコードの実行を停止するために使用できる代替プログラムはありますか? – sam

+0

もちろん、私の答えは編集です。 – davidxxx

関連する問題