2014-09-15 3 views
0

SQLite 데이터베이스의 내용을 표시하는 Java 응용 프로그램을 작성하고 있습니다.JTextField ActionListener가 이벤트에 응답하지 않습니다.

사용자가 필드를 클릭하면 프로그램이 데이터베이스의 다음 테이블에 액세스 할 수 있도록 ActionListener를 설정하려고합니다.

청취자가 클릭에 응답하지 않는 것이 문제입니다. 사용자가 컨트롤에 포커스가 프레스 들어가면

public void text(JTextField jtf, String a, int x, int y, int wid, int hei){ 

     Font font = new Font("Courier", Font.BOLD,12); 
     gbc=new GridBagConstraints(); 
     jtf=new JTextField(a); 
      gbc.gridx=x; 
      gbc.gridy=y; 
      gbc.gridwidth = wid; 
      gbc.gridheight=hei; 
      gbc.fill=GridBagConstraints.BOTH;   
      add(jtf,gbc); 
      jtf.setEditable(false); 
      jtf.setHorizontalAlignment(JTextField.CENTER); 
      jtf.setBorder(BorderFactory.createLineBorder(Color.BLACK)); 
      jtf.setFont(font); 
      jtf.addActionListener(new ActionListener() 
      {    @Override 
       public void actionPerformed(ActionEvent arg0) { 
       JOptionPane.showMessageDialog(null,"Pressed"); 
       } 
      }); 

    } 
+0

'문제는 청취자가 클릭에 응답하지 않습니다.'입니다. 올바르게 추가 된 ActionListener는 JTextField를 클릭 할 때 실행되지 않습니다. 포커스가 JTextField에 있으면 Enter 키를 누릅니다. 아마도 JButton에 리스너를 추가하려고 할 것입니다. – splungebob

+0

더 나은 도움을 받으려면 문제를 나타내는 [Minimal, Complete, Verifiable Example (http://stackoverflow.com/help/mcve)]을 게시하십시오. 여러 번, 예제를 만들면 문제가 드러납니다. – splungebob

답변

0

ActionListener를 실행 :

불어 난의 JTextField를 생성하고 수신기를 설정하고 사용하는 방법이다.

마우스와 관련된 이벤트를 수신하려면 mouseListener를 사용해야합니다.

jtf.addMouseListener(new MouseAdapter(){ 
    public void mouseReleased(MouseEvent e) { 
    JOptionPane.showMessageDialog(null,"Released"); 
    } 

    public void mousePressed(MouseEvent e) { 
    JOptionPane.showMessageDialog(null,"Pressed"); 
    } 
} 

텍스트를 변경하는 사용자에게 응답하려면 keyListener를 사용할 수도 있습니다.

+0

addMouseListener가 JTextField에서 작동하지 않는 것 같지만 올바른 아이디어를 주었고 문제를 해결하는 흰색 배경의 버튼을 사용했습니다. –

관련 문제