我想在java swing 里实现 在文本框和密码框加入提示信息。。。

提示信息点击后消失、、、???? 求大神!!!!
如果点击其他地方判断里面是否为空 是的话恢复提示信息。
不是的话不恢复、、
如下图所示

package test;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Hint extends JFrame implements MouseListener
{
private static final long serialVersionUID = 1L;
private static final String TIP = "QQ号码/手机/邮箱";

public Hint ()
{
setTitle ("test");
setLayout (new BorderLayout ());
final JTextField tf = new JTextField (TIP);
tf.setName ("tf");
tf.setForeground (Color.gray);
tf.setLocation (0, 0);
tf.setSize (100, 30);
tf.addMouseListener (this);
JPanel panel = new JPanel ();
panel.setName ("panel");
panel.addMouseListener (this);
panel.setLayout (null);
panel.add (tf);
panel.setFocusable (true);
add (panel);
setSize (150, 60);
setLocationRelativeTo (null);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setVisible (true);
}

public static void main ( String[] args )
{
new Hint ();
}

@Override
public void mouseClicked ( MouseEvent e )
{
Component component = e.getComponent ();
String name = component.getName ();
if (e.getButton () == MouseEvent.BUTTON1)
{
if ("tf".equals (name))
{
JTextField tf = (JTextField) component;
if (TIP.equals (tf.getText ()))
{
tf.setText ("");
}
}
else if ("panel".equals (name))
{
JTextField tf = (JTextField) ( (JPanel) component ).getComponents ()[0];
if ("".equals (tf.getText ()))
{
tf.setText (TIP);
}
}
}
}

@Override
public void mousePressed ( MouseEvent e )
{}

@Override
public void mouseReleased ( MouseEvent e )
{}

@Override
public void mouseEntered ( MouseEvent e )
{}

@Override
public void mouseExited ( MouseEvent e )
{}
}

追问

大哥,你这个方法可以。。不过 mouseClicked这个方法有点看不懂- -
有木有简单的方法。。

追答

木有了啊,我就知道这样写啊

追问

好吧,就这样0 0
我最后还是选择用的mouselistener这个接口- -
不过还是没实现我的想法0 0
另外。。你知道要是密码框该怎么写么???

追答

一样的道理撒

追问

不是呀 - -我密码框提示信息就加不进去
都是······························这个小圆点。。。- -

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-07

给文本框添加焦点事件,失去焦点是判断一下是否为空,如果为空恢复成提示信息

JTextField textField = new JTextField("密码");
textField.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
if (textField.getText().isEmpty()){
textField.setText("密码");
}
}
});

追问

这个如果是获取交点的情况下,需要删除里面的内容。。
会减少用户体验。。
而且我说的是密码框。。你上面写的是文本框。。

本回答被网友采纳
第2个回答  2014-11-07
new JTextField("指定文本内容");
new的时候直接传值进去就行
第3个回答  2014-11-07

第4个回答  2018-02-27
使用接口FocusListener
获得焦点时设置文本为空,失去焦点时设置文本为“QQ号码/手机/邮箱”
另外,你可以给窗体添加一个空白文本框(不设置大小和位置),这样它会默认获得焦点,可以避免在窗体显示时提示信息为空的情况。
希望能帮到你

javaSwing中在文本框TextField中输入值,然后点击按钮获取文本框中的值...
2、获取输入框值 TextField tf;tf.getText();\/\/--即可获得输入框文本值

Java在Swing中如何实现弹出一个对话框的效果?
可以使用JoptionPane:有几种提示框:第一种:JOptionPane.showMessageDialog(jPanel, "提示消息", "标题",JOptionPane.WARNING_MESSAGE);第二种:int n = JOptionPane.showConfirmDialog(null, "你高兴吗?", "标题",JOptionPane.YES_NO_OPTION);\/\/返回的是按钮的index i=0或者1 第三种:Object[] ...

请问密码框里想要显示汉字,怎么设置?用swing
我的建议是,先用文本框提示汉字,然后写一个点击事件,移除文本框,添加密码框。效果图:测试代码(可以直接运行):import javax.swing.*;import java.awt.*;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent...

java swing里文本框控制不能输入汉字,或者输入字符串包含汉字在失去焦点...
题主你好,你可以给输入框监听失焦事件,然后获取文本的内容去进行正则匹配,如果符合条件就进行下面的业务操作,如果不符合,提示用户有格式问题需重新输入即可。

我想做一个最简单的java小程序,只要加个文本框,然后再加几个按钮,就...
JLabel passwordLabel;\/\/定义密码标签提示 JTextField userText;\/\/定义用户文本框 JPasswordField passwordText;\/\/定义密码文本框 int count=1;\/\/统计输入信息的次数 public PasswordVerification() { super("请输入信息");Container container=getContentPane();\/\/得到容器对象container;container.setLayout(...

java的swing中,我想在JComboBox下拉框中添加文本内容,该如何去实现?
pack();frame.setVisible(true);} public static void main(String[] args) { \/\/Schedule a job for the event-dispatching thread:\/\/creating and showing this application's GUI.javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI();} });} ...

我在做一个java桌面程序,用的swing,需要在文本框中显示HTML内容_百度...
显示普通的HTML,可以用 javax.swing.JInternalFrame 文本的复制,代码中写,直接getText()、setText()即可以,格式就是直接参照原文本框的格式(字体、颜色等)

怎样将Swing中的表格内的数据显示在文本框中
public int rowAtPoint(Point point)返回 point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1。参数:point - 要查询的位置 返回:point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1 另请参见:columnAtPoint(java.awt.Point)范例:public ...

求助,在JAVA中使用SWING如何实现弹出对话框效果?
方法1.假设,主程序窗体为B,login窗体为A,运行程序后先启动A窗体。待用户信息等输入效验正确后在吧A窗体隐藏掉把B窗体显示出来。方法2. extends JDialog implements WindowListener 也同样可以实现。在做构造函数的时候setContentPane。把你的jpanl 放进去就OK了。

编写JAVA程序,在其中有一个按钮和一个文本框。单击按钮时,文本框中显...
1、首先,设置在网页中显示文本的格式,文本的高度为100像素,宽度为280像素。2、定义显示文本的字体大小为22像素,离左侧和右侧的距离设置为自动,离顶部的距离设置为15像素。3、用font标签在网页中插入要显示的文本。4、由于显示的文本内容是动态控制的,所以设置一个标识符poemsi,用来动态表示显示的...

相似回答