スイングのフレームに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で「==」あちこちに文字列の比較ですが変更された()が、問題:
は、ここに私のコードです。
ようこそStackOverflow!回答を得るためのヒントをいくつか挙げておきます。 1.何か問題がない場合は、スタックトレース、エラーログなどを投稿してください。長すぎる場合は、適切なスニペットを[pastebin](http://pastebin.com/)のようなペーストサービスに投稿することは大丈夫です。私たちの視点から見ると、出力を表示しないと、ボタンを押したときにウィンドウが閉じた理由がわかりません! –
2.質問の内容を編集するときに、内容を大きく変更しないようにしてください。 /などの入力用に編集する場合。それはいいですが、コンテンツを変更すると、一般的に「EDIT:」から始まる一番下の行が丁寧になり、人々はあなたが変更したものを知ります。 –
3.コードを投稿するときは、[SSCCE](http://sscce.org/)を投稿することをお勧めします。これにより、人々がコードをすばやくテストできるようになります。非常に長く、必要なものすべてではないため、投稿した内容を利用することは非常に困難です。すべてのコードを投稿する必要がある場合はスニペットをポストし、次にポストをすべてポストします。 –