【问题标题】:Using event to get two values from textfield使用事件从文本字段中获取两个值
【发布时间】:2013-07-30 00:37:28
【问题描述】:

我只想使用一次actionPerformed 事件方法。例如:我试图从一个文本字段中获取两个值。

public void actionPerformed(ActionEvent ev){
     String whatever = tf.getText();
     if(whatever.equalsIgnoreCase("good"){
     inout.append("blahh");
     //and then I'm trying to get a new value from the user without it resetting.
}

【问题讨论】:

  • 没有什么重置?用户应该如何提供新值?
  • 我认为我们需要更多背景信息才能为您提供帮助。你有一个可运行的例子吗?
  • 没有再次运行 actionPerformed 方法。我想再次使用 .getText() 方法,但不能,因为它正在使用已为新值输入的内容
  • 在我要添加的 cmets 之后:
  • String 不管什么2 = tf.getText(); //这是相同的值,但我希望它使用新输入的文本

标签: java swing event-handling actionlistener jtextfield


【解决方案1】:

如果您试图让同一个事件执行两个操作,那么您可以尝试以下操作:

int choice = 0;

public void actionPerformed(ActionEvent ev){
    if ( choice == 0 ) {
        String whatever = tf.getText();
        if(whatever.equalsIgnoreCase("good"){
        inout.append("blahh");
        ...
        choice++;
    }// end first action
    else if ( choice == 1 ) {
        //Second action
        //Your code for what happens the second time would go here
        choice++;
    } else {
        //you can do this forever
    } 
}

作为一个新程序员,你应该明白为什么会这样:

代码有无穷无尽的可能性。通过看到这一点,您应该注意到您可以将许多循环、开关和其他您在此之前使用过的语句结合起来。在这种情况下,我正在做出一个条件选择,它会改变您单击 JButton 时发生的情况。

当您变得更好时,您将了解线程和事件,它们本质上是 Java 中内置的线程,您将能够做更多事情。

继续努力,永远不要放弃一个难题:D。

【讨论】:

  • 更具体地说,我正在尝试创建一个程序,其中用户输入一个字符串,如果用户输入良好或任何程序会响应并提出问题并期待另一个响应。我相信仅使用一种事件方法是不可能的
  • @user2632230 您几乎可以将任何您想要的内容写入事件。你只需要编码它。再次调用事件时是否尝试调用其他方法?
  • 那种。我希望用户能够输入一个字符串,然后在没有另一个文本字段或按钮的情况下输入另一个字符串。主要问题是事件。什么是错的:如果用户按下回车,一个值被存储没有问题。但是当用户回答这个问题并按下回车键时,整个 actionPerformed 方法会再次被调用
  • 这就是我的意思: public void actionPerformed(ActionEvent ev){ String 不管 = tf.getText(); inout.append(换行+随便); if(whatever.equalsIgnoreCase("good")){ inout.append("blahhh");字符串 ok = tf.getText(); //这个值和String一样。那就是问题所在。 } }
  • 谢谢,我不敢相信答案这么简单,有时我想我只是忘记了基础知识哈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 2022-01-16
  • 2012-05-14
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多