Java 焦点侦听器有问题
我写的代码有点问题。我想让它做的是让焦点侦听器观察用户是否关注某个文本框。否则,将显示字符串“搜索…”。但是,Java 焦点侦听器有问题,java,focuslistener,Java,Focuslistener,我写的代码有点问题。我想让它做的是让焦点侦听器观察用户是否关注某个文本框。否则,将显示字符串“搜索…”。但是,focusgound和focusLost中的searchText实例都无法识别。我认为原因在于searchText仅在gui方法的范围内。唯一的问题是,我不知道如何使searchText可用于focusgound和focusLost。我已经尝试了@Override,但这似乎不起作用 如果有人能帮我,我将不胜感激。谢谢 package org.plugandplay.project
focusgound
和focusLost
中的searchText
实例都无法识别。我认为原因在于searchText
仅在gui
方法的范围内。唯一的问题是,我不知道如何使searchText
可用于focusgound
和focusLost。
我已经尝试了@Override
,但这似乎不起作用
如果有人能帮我,我将不胜感激。谢谢
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) {
}
您遇到了范围问题。您需要将searchText设置为对象成员:
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);
谢谢我将在以后的一些项目中牢记这一点