如何将动作事件侦听器的多个结果添加到对话框

简布

所以我有一个简单的 Java GUI,它有两个可编辑的文本字段。

如果我输入第一个,它会弹出一个对话框,显示第一个字段。

##########################################
# Message                              x #
##########################################
# Your textfields                        #
# 1: this is an editable field           #
#                                        #
##########################################

如果我输入,它会弹出一个对话框,显示第二个字段。

##########################################
# Message                              x #
##########################################
# Your textfields                        #
# 2: this is an editable field 2         #
#                                        #
##########################################

但是,是否可以弹出一个同时显示两个字段的对话框?

##########################################
# Message                              x #
##########################################
# Your textfields                        #
# 1: this is an editable field           #
# 2: this is an editable field 2         #
##########################################

这是我到目前为止所做的:

我的文本框:

class EditTextFrame extends JFrame 
{
  private JTextField editableField1; 
  private JTextField editableField2; 


   public EditTextFrame()
   {
          setLayout(new FlowLayout());

       editableField1 = new JTextField("This is an editable field", 25); 
       editableField2 = new JTextField("This is an editable field2", 25); 

       add(editableField1);
       add(editableField2);

       TextFieldHandler handler = new TextFieldHandler();
       editableField1.addActionListener(handler);
       editableField2.addActionListener(handler);
   } 

我的动作事件:

private class TextFieldHandler implements ActionListener 
   {
      @Override
      public void actionPerformed(ActionEvent e)
      {
         String string1 = ""; 
         String string2 = ""; 


         if (e.getSource() == editableField1)
            string1 = String.format("1: %s",
               e.getActionCommand());

          if (e.getSource() == editableField2)
            string2 = String.format("2: %s",
               e.getActionCommand());


         JOptionPane.showMessageDialog(null, "Your textfields \n" + string1 + string2
                    ); 

      }
   }

我知道我的字符串 concat 没用,因为其中一个将是空的,因为 if 语句在满足条件后停止..但我似乎无法找到解决方法..

L·怀斯

如果每次都会填充两个文本字段(预期输入是两个字段,预期输出是两个),那么您可以创建两个单独的事件处理程序并将一个附加到每个文本字段。将第一个文本字段的字符串保存在全局变量中,然后第二个将两个字符串连接在一起,然后弹出您的文本框。

但是,要处理所有类型的输入(仅一个或两个字段),我将添加第三个“提交”按钮。让这个提交按钮从两个文本字段中提取字符串,然后弹出您的对话框。将字符串初始化为空 ("") 以确保没有空指针。

 private String field1String = "";
 private String field2String = "";

    // you'll need one of these for each text field
    private class TextField1Handler implements ActionListener 
           {
              @Override
              public void actionPerformed(ActionEvent e)
              {
                field1String = yourField1.getText();

              }
           }

      // attach this to your button
      private class ButtonClickHandler implements ActionListener 
           {
              @Override
              public void actionPerformed(ActionEvent e)
              {
                 JOptionPane.showMessageDialog(null, "Your textfields \n" + 
                  field1String + field2String); 

              }
           }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将多个事件侦听器添加到一个按钮?

如何将事件侦听器添加到具有相同类的多个输入中

如何将 scaleUp 类添加到 onmouseover 事件侦听器上的多个跨度元素

如何将侦听器事件添加到由DefaultListModel对象添加的JList元素?

如何将侦听器添加到表?

如何将事件侦听器添加到Redux表单

如何将事件侦听器添加到动态创建的HTML列表元素?

如何将 updateend 事件侦听器添加到两个对象?

如何将事件侦听器添加到 Map 标记 [] 数组

iOS UIWebView:如何将侦听器添加到DOM事件?

如何将事件侦听器添加到OverlayView?

如何将事件侦听器添加到JavaScript中的许多按钮?

如何将事件侦听器添加到画布上绘制的矩形?

如何将事件侦听器添加到RatingBar

如何将事件侦听器添加到tone.js中播放的音符

如何将事件侦听器添加到 Web 组件模板元素

如何将事件侦听器添加到“+”缩放元素?

如何将事件侦听器添加到动画变换旋转中?

如何将事件侦听器添加到React Native中的状态

如何将事件侦听器添加到数组中的每个元素?

如何将事件侦听器添加到单选按钮 - 地雷不触发

如何将事件侦听器添加到<input type = number>的默认箭头按钮

如何将事件侦听器添加到仅按钮元素

如何将事件侦听器添加到模板字符串

如何在jquery的sweetalert对话框中为html按钮添加事件侦听器

Swift-如何添加事件侦听器以取消电子邮件对话框?

将动作侦听器添加到RadioPanel

将动作侦听器添加到JPanel

动态将动作侦听器添加到按钮