久久精品国产精品青草色艺_www.一区_国内精品免费久久久久妲己_免费的性爱视频

ActionEvent失效?

1.我的這個程序實現的是:創建一個窗口,模擬輸入序列號;按下“確定”按鈕就可以彈出提示框(正確或者錯誤)。我試圖用三個監視器。1.焦點監視器和2.鍵盤監視器監視鍵盤(當輸入超過3個字符時自動更改焦點。);3.一個監視器監視按鈕button,當按鈕被按下,就比對輸入的序列號是否與預先寫好的一致。但是結果,永遠是不一致,即使輸入了正確的序列號。我想知道問題出在哪?
2.
Judge.java


public class Judge { public static void main(String args[]) { Win win=new Win(); win.setTitle("判斷序列號"); win.setBounds(10,10,460,360); } }

Win


import java.awt.*; import javax.swing.*; import java.awt.event.*; //該窗口應該包含以下內容: //1.三個文本框,每個文本框輸入字符數為4 //2.一個提交按鈕 // 3.兩個事件處理:焦點處理和鍵盤事件處理public class Win extends JFrameimplements ActionListener//Win類用來初始化窗口 { JTextField text[]=new JTextField[3]; //三個文本框 String str[]=new String[5];//字符串數組 focusPolice focuspolice;//自定義類2:焦點事件類。 JButton b;//確定按鈕 //構造函數Win() { setLayout(new FlowLayout());//布局類型為FlowLayout型 b=new JButton("確定"); this.init(); add(b); text[0].requestFocusInWindow();//初始化焦點 setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void init() { focuspolice=new focusPolice();//創建焦點事件類對象 for(int i=0;i<3;i++) { text[i]=new JTextField(4); text[i].addFocusListener(focuspolice); text[i].addKeyListener(focuspolice); str[i]=text[i].getText().toString(); add(text[i]); } b.addActionListener(this); }public void actionPerformed(ActionEvent ae) { if(ae.getActionCommand().equals("確定")) { if(str[0]=="aaa"&&str[1]=="bbb"&&(str[2]=="ccc")) { JOptionPane.showMessageDialog(b,"正確!","提示框", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(b,"錯誤!","提示框", JOptionPane.WARNING_MESSAGE); } } }}

focusPolice.java


import java.awt.event.*; import javax.swing.*; //既然是要處理事件,那么awt.event必不可少 public class focusPolice implements KeyListener,FocusListener{//不光是需要FocusListener,也需要keyListenerpublic void keyPressed(KeyEvent e) { JTextField t=(JTextField)e.getSource(); if(t.getCaretPosition()>=2)//實驗結果:如果輸入的字符個數多于3個,將會自動跳焦。t.transferFocus();} public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) {} public void focusGained(FocusEvent e) { JTextField text=(JTextField)e.getSource(); text.setText(null);}<愛尬聊_百科全書> public void focusLost(FocusEvent e){}}

3、4.我輸入了我預先設置的答案,仍然提示錯誤。整個程序并沒有報錯,但就是和我想要的結果不一樣。

5.我試了某個辦法,看文本框中的內容有沒有傳遞給str數組,最后發現并沒有。說明問題出在init()方法內部,但是我知識有限,花了很長時間還是沒找到哪里錯了。


編輯 舉報 2023-06-13 13:48

0個評論

暫無評論...
驗證碼 換一張
相關內容