【发布时间】:2017-02-14 18:23:47
【问题描述】:
我在编写这段代码时遇到了一些问题。我想要它做的是让 Focus Listener 观察用户是否专注于某个文本框。如果没有,将显示字符串“Search...”。但是,focusGained 和 focusLost 中的 searchText 的两个实例都无法识别。我认为原因是因为searchText 仅在gui 方法的范围内。唯一的问题是,我不知道如何使searchText 可用于focusGained 和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) {
}
【问题讨论】:
标签: java focuslistener