【问题标题】:getting stuck on a java excercise陷入 Java 练习
【发布时间】:2014-03-07 01:24:27
【问题描述】:

问题来了:

“命理”
使用 JFrame 创建一个程序,该程序允许将单词的字符串输入到文本框中,然后 计算输出的每个字母的值的总和。一定要包括一个“计算” 和“退出”按钮。 例如:sky = 55,因为 s = 19,k = 11,y = 25,所以 19 + 11 + 25 = 55。

    import java.awt.*; //Container, GridLayout, *, or etc...
    import javax.swing.*; //JFrame, JLabel, *, or etc...
    import java.awt.event.*;
    public class NumerologyEC extends JFrame
    {
        private static final int Width = 400;
        private static final int Height = 100;

        private JLabel wordJL;
        private JTextField wordTF;

        private JButton calculateJB, exitJB;

        private CalculateButtonHandler cbHandler;
        private ExitButtonHandler ebHandler;

       public  NumerologyEC()
       {
           setTitle ("Numerology Extra Credit");
           wordJL = new JLabel ("Enter a word: ", SwingConstants.RIGHT);

           wordTF = new JTextField(10);

           calculateJB = new JButton ("Calculate");
           cbHandler = new CalculateButtonHandler();
           calculateJB.addActionListener (cbHandler);

           exitJB = new JButton ("Exit");
           ebHandler = new ExitButtonHandler();
           exitJB.addActionListener (ebHandler);

           Container pane = getContentPane();
           pane.setLayout (new GridLayout (2, 2));

           pane.add(wordJL);
           pane.add(wordTF);
           pane.add(calculateJB);
           pane.add(exitJB);

           setSize(Width, Height);
           setVisible (true);
           setDefaultCloseOperation (EXIT_ON_CLOSE);
        }

          private class CalculateButtonHandler  implements ActionListener
        {
            public void actionPerformed (ActionEvent e)
            {
                String word;



            }
        }

        private class ExitButtonHandler implements ActionListener
        {
            public void actionPerformed (ActionEvent e)
            {
              System.exit (0);  
            }
        }

       public static void main (String[] args)
       {
        NumerologyEC rectObject = new NumerologyEC();
        }


    }

我应该使用什么方法来解决问题?我已经设置了我的 jframe 现在我只需要一种方法来解决这个问题。我只是一个初学者,所以在编程方面我仍在努力解决问题。非常感谢任何提示。

【问题讨论】:

    标签: java swing methods


    【解决方案1】:

    您需要一个 sumCharValues 方法,它接受一个字符串,遍历字符,添加它们的 int 值(A = 1,B = 2)并返回总和。例如

    private int sumCharValues (String input) {
      String str = input.toLowerCase(); // so 'A' and 'a' are equivalent
      int result = 0;
      for (int i = 0, n = str.length(); i < n; i++) {
        char c = str.charAt(i);
        result += (c - 'a' + 1);
      }
      return result;
    }
    

    您必须从“计算”处理程序的处理程序中调用此方法,并使用 JLabel 来显示结果值。

    【讨论】:

    • 谢谢。你不像这里其他让初学者感到愚蠢的人。这很有帮助。
    • 很高兴为您提供帮助。不要忘记将我的答案标记为正确的:-)
    【解决方案2】:

    我建议您阅读有关事件侦听器的内容。我不会给你直接的答案,而是提示。查看 Javadocs 并查看 ActionEvent 上可用的方法。 Google 可以成为一个方便的工具。

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 2012-10-11
      • 2016-02-09
      相关资源
      最近更新 更多