我有一个简单的问题。我在这里做了一个小程序,但现在我坚持了一点。
我有一个TextField和一个按钮,如果点击它就可以看到该金额。 但是我想在TextField中写入任何内容时禁用该按钮,因此当您在文本字段中写入内容时,该按钮必须能够再次按下。
任何人都可以帮我这个吗?我一直在寻找答案,但我找不到。
谢谢。
答案 0 :(得分:1)
简单!您需要做的就是为正在使用的文本字段创建的文档添加一个侦听器,然后在检测到更改时调用enable方法。在此方法中,您可以启用按钮
例如
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
enableButton();
}
public void removeUpdate(DocumentEvent e) {
enableButton();
}
public void insertUpdate(DocumentEvent e) {
enableButton();
}
public void enableButton() {
if (textField.getText().equals(""))
{
button.setEnabled(false);
}
else
{
button.setEnabled(true);
}
}
});
答案 1 :(得分:0)
已经讨论过了。 此链接可能有所帮助 Disable button whenever a text field is empty dynamically
如果您不是在寻找,请具体说明。
答案 2 :(得分:0)
/*
* jsch-0.1.50 - MyPane.java, Feb 3, 2014 3:05:03 PM
*
* Copyright 2014 Varra Ltd, Inc. All rights reserved.
* Varra proprietary/confidential. Use is subject to license terms.
*/
package com.varra.threading.voltaile;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* TODO Description go here.
*
* @author <a href="mailto:varra@outlook.com">Rajakrishna V.
* Reddy</a>
* @version 1.0
*
*/
public class MyPane extends JPanel
{
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 3089223598850357054L;
/** The tf. */
final JTextField tf = new JTextField(30);
/** The button. */
final JButton button = new JButton("BUTTON");
/**
* Instantiates a new my pane.
*/
public MyPane()
{
add(tf);
add(button);
button.setEnabled(false);
new Thread(target).start();
tf.addActionListener(actionListener);
}
final ActionListener actionListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equalsIgnoreCase("Enable"))
{
button.setEnabled(true);
}
else if (e.getActionCommand().equalsIgnoreCase("Disable"))
{
button.setEnabled(false);
}
}
};
final Runnable target = new Runnable()
{
public void run()
{
while (true)
{
final ActionListener[] listeners = tf.getActionListeners();
for (ActionListener listener : listeners)
{
if (tf.getText().trim().length() > 0)
{
final ActionEvent event = new ActionEvent(tf, 1, "Enable");
listener.actionPerformed(event);
}
else
{
final ActionEvent event = new ActionEvent(tf, 1, "Disable");
listener.actionPerformed(event);
}
}
}
}
};
/**
* Entry point to the entire application, contains the list of args to pass
* the user defined values.
*
* @param args
* the arguments
*/
public static void main(String... args)
{
final JFrame frame = new JFrame();
frame.getContentPane().add(new MyPane());
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}