Java 如何替换JTextField中的文本,而不是删除和输入?
我正在制作一个简单的千克到磅的转换器,我有一个文本字段,上面写着“kgs here”,当用户输入时,它会被追加,但不会被覆盖。请帮忙Java 如何替换JTextField中的文本,而不是删除和输入?,java,swing,jtextfield,Java,Swing,Jtextfield,我正在制作一个简单的千克到磅的转换器,我有一个文本字段,上面写着“kgs here”,当用户输入时,它会被追加,但不会被覆盖。请帮忙 import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class UnitConvertKg { JFrame
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class UnitConvertKg {
JFrame f;
JPanel p;
JButton b1;
JTextField tf1,tf2;
UnitConvertKg(){
f=new JFrame("UnitConvertKg");
p=new JPanel();
tf1=new JTextField("Kg here");
//this is predefined text and I want that this gets overwritten when t //user types in kgs.
tf2=new JTextField(" ");
b1=new JButton("CONVERT");
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
double d = Double.parseDouble(tf1.getText())*2.204;
tf2.setText(String.valueOf(d));
}
});
p.add(tf1);
p.add(tf2);
p.add(b1);
p.setForeground(Color.blue);
f.add(p);
f.setSize(400,400);
}
你的意思是像android中的提示和HTML中的占位符
tf1.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
tf1.setText("");
}
});
试试这个,看看它是否起作用:
tf1.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
tf1.setText("");
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
if(tf1.getText().equals("KG here") || tf1.getText().isEmpty())
tf1.setText("KG here");
}
});
您需要在字段中添加占位符,而不是文本。见和。希望它能帮助JTextField的占位者:-如果这不是一个重复的问题,请在你的问题中包含一个显示你选择的方法。不,这不应该是一个解决方案。因为,每次我想更新文本时,它都会删除旧文本.tf1.addMouseListener(new MouseAdapter(){@Override public void mouseClicked(MouseEvent e){String oldText=tf1.getText();if(oldText.toUpperCase().equals(“KG HERE”){tf1.setText(“”;}else{tf1.setText(oldText);});更新你的答案。但仍然占位符是最好的解决方案;顺便说一句,
MouseAdapter
就不会那么冗长了。