【发布时间】:2012-01-04 13:45:11
【问题描述】:
我有这种情况,我想用数字显示一个数字。该数字将输入到 Jtextfield 中,我希望工具提示以数字显示金额。问题是,工具提示显示较旧的数据。
我已经写了一些代码来告诉你这个问题:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Test
{
public static void main(String[] args) {
final JFrame frame=new JFrame();
frame.setLayout(new FlowLayout());
frame.setPreferredSize(new Dimension(400,100));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextField tf=new JTextField(30);
frame.add(tf);
frame.add(new JTextField(30));
tf.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
tf.setToolTipText(tf.getText());
}
@Override
public void focusGained(FocusEvent e) {
tf.setToolTipText(tf.getText());
}
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
frame.pack();
frame.setVisible(true);
}
});
}
}
让我们以这种情况为例,用户在第一个文本字段中输入数字。文本光标仍然在同一个文本字段上。当用户现在将鼠标指针移到第一个文本字段上时,工具提示仍然显示旧文本。 现在,当您将焦点转移到第二个文本字段时,第一个文本字段的数据将被提交,因此工具提示也会刷新。
现在如何在文本字段中仍未提交的文本上显示工具提示?
【问题讨论】: