2017-02-14 1 views
0

J'ai des problèmes avec ce code que j'écris. Ce que je veux qu'il soit pour un écouteur de Focus à regarder pour voir si un utilisateur est concentré sur une certaine zone de texte. sinon, la chaîne "Rechercher ..." s'affichera. Cependant, les deux instances de searchText dans focusGained et focusLost ne sont pas reconnues. Je pense que la raison est parce que searchText est seulement dans le cadre de la méthode gui. Le seul problème est, je ne sais pas comment faire searchText disponible à focusGained et focusLost. J'ai déjà essayé @Override, mais cela ne semble pas fonctionner.J'ai des problèmes avec FocusListener

Si quelqu'un peut m'aider s'il vous plaît avec ceci, il serait grandement apprécié. Merci!

package org.plugandplay.project.project2_0; 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.event.MouseEvent; 
import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 



public class gui extends JFrame implements ActionListener, FocusListener { 

    public gui() { 
     super("Project 2.0 Indev"); 
     setLookAndFeel(); 
     setSize(300, 300); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     ImageIcon search = new ImageIcon("C:/Users/User/Documents/searchicon.png"); 
    JButton searchButton = new JButton(search); 

    JTextField searchText = new JTextField("Search..."); 

    searchText.addFocusListener(this); 
    searchText.setColumns(15); 



    JToolBar toolbar = new JToolBar("Search..."); 
    toolbar.add(searchText); 
    toolbar.add(searchButton); 


    BorderLayout border = new BorderLayout(); 
    setLayout(border); 
    add("North", toolbar); 

} 
    @Override 
    public void focusGained(FocusEvent ev) { 
     searchText.setText(""); 
    } 

    public void focusLost(FocusEvent ev) { 
     searchText.setText("Search..."); 
    } 

    public void actionPerformed(ActionEvent event) { 



} 

Répondre

0

Vous rencontrez un problème d'étendue. Vous devez rechercher un objet membre:

public class gui extends JFrame implements ActionListener, FocusListener { 

    //put searchText here 
    JTextField searchText; 


    public gui() { 
     super("Project 2.0 Indev"); 
     setLookAndFeel(); 
     setSize(300, 300); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     ImageIcon search = new ImageIcon("C:/Users/User/Documents/searchicon.png"); 
    JButton searchButton = new JButton(search); 
    searchText = new JTextField("Search..."); 
    searchText.addFocusListener(this); 
    searchText.setColumns(15); 
+0

Merci! Je garderai cela à l'esprit dans certains de mes projets ultérieurs – JCWMM