继承人的问题:
“命理”
使用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,我只需要一种方法来解决这个问题。我只是一个初学者所以我仍然试图在编程时弄清楚。非常感谢任何提示。
答案 0 :(得分:0)
我建议你阅读有关事件监听器的内容。我不会直接给你答案,但提示。查看Javadocs并查看ActionEvent上可用的方法。谷歌可以成为一个方便的工具。
答案 1 :(得分:0)
你需要一个方法sumCharValues,它接受一个字符串,迭代字符,添加它们的int值(A = 1,B = 2)并返回总和。 E.g。
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;
}
您必须从“compute”处理程序的处理程序中调用此方法,并使用JLabel显示结果值。