java jtextfield设置不可见_java – 取消选择JTextfield上的默认选择

使用JTextFields时我喜欢设置默认文本.

然后我运行程序,将自动选择此默认文本(至少当您只有一个字段时).换句话说,如果我立即键入一个字母,默认文本将被删除并替换为新文本.

我的问题是如何以允许我键入字母而不删除默认文本的方式更改默认设置?我想将这封信添加到默认文本的末尾.

这是我的代码:

public class ButtonsNText extends JPanel implements ActionListener,KeyListener {

private JTextField TextLine;

private JToggleButton UpperCaseButton;

private JToggleButton LowerCaseButton;

private JCheckBox ContinuousButton;

private ButtonGroup myButtonGroup;

public ButtonsNText(){

TextLine = new JTextField(10);

add(TextLine); TextLine.setName("TextLine");

TextLine.setText("default text");

TextLine.setCaretPosition(TextLine.getText().length());

TextLine.addKeyListener(this);

myButtonGroup = new ButtonGroup();

UpperCaseButton = new JToggleButton("Upper case");

add(UpperCaseButton);UpperCaseButton.setName("UpperCaseButton");

LowerCaseButton = new JToggleButton("Lower case");

add(LowerCaseButton); LowerCaseButton.setName("LowerCaseButton");

ContinuousButton = new JCheckBox("Continuous?");

add(ContinuousButton); ContinuousButton.setName("ContinuousButton");

myButtonGroup.add(UpperCaseButton); myButtonGroup.add(LowerCaseButton);

UpperCaseButton.addActionListener(this);

LowerCaseButton.addActionListener(this);

ContinuousButton.addActionListener(this);

}

public static void main(String[] args) {

JFrame frame = new JFrame("Hello world example");

frame.add(new ButtonsNText());

frame.pack();

frame.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getSource() == UpperCaseButton){

TextLine.setText(TextLine.getText().toUpperCase());

}

else if(e.getSource() == LowerCaseButton){

TextLine.setText(TextLine.getText().toLowerCase());

}

}

@Override

public void keyReleased(KeyEvent k) {

if(ContinuousButton.isSelected()){

if(UpperCaseButton.isSelected()){

int pos = TextLine.getCaretPosition();

TextLine.setText(TextLine.getText().toUpperCase());

TextLine.setCaretPosition(pos);

}

else if(LowerCaseButton.isSelected()){

int pos = TextLine.getCaretPosition();

TextLine.setText(TextLine.getText().toLowerCase());

TextLine.setCaretPosition(pos);

}

}

int key = k.getKeyCode();

if(key == KeyEvent.VK_ENTER){

if(UpperCaseButton.isSelected()){

TextLine.setText(TextLine.getText().toUpperCase());

}

else if(LowerCaseButton.isSelected()){

TextLine.setText(TextLine.getText().toLowerCase());

}

}

}

}

我尝试过像isFocusable(),setFocusable(),setCaterPosition()和其他类似的方法,但在这里我认为我需要一种不同的方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值