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

ActionEvent失效?

1.我的這個(gè)程序?qū)崿F(xiàn)的是:創(chuàng)建一個(gè)窗口,模擬輸入序列號;按下“確定”按鈕就可以彈出提示框(正確或者錯(cuò)誤)。我試圖用三個(gè)監(jiān)視器。1.焦點(diǎn)監(jiān)視器和2.鍵盤監(jiān)視器監(jiān)視鍵盤(當(dāng)輸入超過3個(gè)字符時(shí)自動(dòng)更改焦點(diǎn)。);3.一個(gè)監(jiān)視器監(jiān)視按鈕button,當(dāng)按鈕被按下,就比對輸入的序列號是否與預(yù)先寫好的一致。但是結(jié)果,永遠(yuǎn)是不一致,即使輸入了正確的序列號。我想知道問題出在哪?
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.*; //該窗口應(yīng)該包含以下內(nèi)容: //1.三個(gè)文本框,每個(gè)文本框輸入字符數(shù)為4 //2.一個(gè)提交按鈕 // 3.兩個(gè)事件處理:焦點(diǎn)處理和鍵盤事件處理public class Win extends JFrameimplements ActionListener//Win類用來初始化窗口 { JTextField text[]=new JTextField[3]; //三個(gè)文本框 String str[]=new String[5];//字符串?dāng)?shù)組 focusPolice focuspolice;//自定義類2:焦點(diǎn)事件類。 JButton b;//確定按鈕 //構(gòu)造函數(shù)Win() { setLayout(new FlowLayout());//布局類型為FlowLayout型 b=new JButton("確定"); this.init(); add(b); text[0].requestFocusInWindow();//初始化焦點(diǎn) setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void init() { focuspolice=new focusPolice();//創(chuàng)建焦點(diǎn)事件類對象 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,"錯(cuò)誤!","提示框", 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)//實(shí)驗(yàn)結(jié)果:如果輸入的字符個(gè)數(shù)多于3個(gè),將會(huì)自動(dòng)跳焦。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.我輸入了我預(yù)先設(shè)置的答案,仍然提示錯(cuò)誤。整個(gè)程序并沒有報(bào)錯(cuò),但就是和我想要的結(jié)果不一樣。

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


編輯 舉報(bào) 2023-06-13 13:48

0個(gè)評論

暫無評論...
驗(yàn)證碼 換一張
相關(guān)內(nèi)容