在对话框(Java)上显示两个注释



注释 1评论2

如何使两个注释都显示在对话框中?

以下是我的代码供参考。

private class HandleTextField implements ActionListener
{
    @Override
    public void actionPerformed (ActionEvent e)
    {
        String string  = "";
        if (e.getSource () == textFieldArray [0])
        {
            string = String.format("1. %s", e.getActionCommand());
        }
        else if (e.getSource () == textFieldArray [1])
        {
            string = String.format("2. %s", e.getActionCommand());
        }
        Object [] fields ={
            "Summary of my changes" , string
        };
        JOptionPane.showMessageDialog(null, fields, "My sugestion to the course", JOptionPane.WARNING_MESSAGE);
    }
}

}

以下未经测试的代码将在两个文本字段触发操作时将两个文本字段的内容放在对话框中。

private class HandleTextField implements ActionListener {
  @Override
  public void actionPerformed (ActionEvent e) {
    StringBuilder string  = new StringBuilder();
    if (e.getSource () == textFieldArray[0] || 
        e.getSource () == textFieldArray[1]){
      string.append(String.format(
          "1. %s", textFieldArray[0].getText())
        );
      string.append(String.format(
          "2. %s", textFieldArray[1].getText())
        );
    }
    String[] fields = {"Summary of my changes" , string.toString()};
    JOptionPane.showMessageDialog(null, fields, "My suggestion to the course", JOptionPane.WARNING_MESSAGE);
  }
}

因此,如果您观察,则在每个条件下都会重叠字符串。如果您希望两者都显示,则至少应执行此操作:

private class HandleTextField implements ActionListener {
   @Override
   public void actionPerformed (ActionEvent e) {
      String string  = "";
      if (e.getSource () == textFieldArray [0]){
         string += String.format("1. %s", e.getActionCommand());
      } 
      if (e.getSource () == textFieldArray [1]) {
         string += String.format("2. %s", e.getActionCommand());
      }
      String[] fields = {"Summary of my changes" , string};
      JOptionPane.showMessageDialog(null, fields, "My sugestion to the course", JOptionPane.WARNING_MESSAGE);
   }
}

我建议像这样执行此代码(更建议在 String 对象上附加内容(:

private class HandleTextField implements ActionListener {
  @Override
  public void actionPerformed (ActionEvent e) {
     StringBuilder string  = new StringBuilder();
     if (e.getSource () == textFieldArray [0]){
        string.append(String.format("1. %s", e.getActionCommand()));
     } 
     if (e.getSource () == textFieldArray [1]) {
        if(string != null && string.toString().length() > 0){
           string.append(System.lineSeparator());
        }
        string.append(String.format("2. %s", e.getActionCommand()));
     }
     String[] fields = {"Summary of my changes" , string.toString()};
     JOptionPane.showMessageDialog(null, fields, "My sugestion to the course", JOptionPane.WARNING_MESSAGE);
  }
}

相关内容

最新更新