复制
收藏
提问
简洁
用JAVA编写数字的英文单词显示程序,窗口中安排一个文本框 一个按钮 一个标签 输入1到9,显示相应胡英文要求能进行异常处理规范出现错误
4月前
回答
更专业一些
在Java中编写一个简单的图形用户界面(GUI)程序,用于将输入的数字(1到9)转换为对应的英文单词,并进行异常处理,可以使用Swing框架来创建窗口和组件。下面是一个简单的示例代码,它包含了一个文本框、一个按钮和一个标签,以及异常处理:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class NumberToWord extends JFrame {
private JTextField numberField;
private JButton convertButton;
private JLabel resultLabel;
public NumberToWord() {
setTitle("Number to Word Converter");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLayout(new FlowLayout());
numberField = new JTextField(10);
convertButton = new JButton("Convert");
resultLabel = new JLabel("Result will be here");
add(numberField);
add(convertButton);
add(resultLabel);
convertButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String number = numberField.getText();
if (number == null || number.isEmpty()) {
throw new IllegalArgumentException("Input cannot be empty.");
}
int num = Integer.parseInt(number);
String word = convertNumberToWord(num);
resultLabel.setText("Result: " + word);
} catch (NumberFormatException e) {
resultLabel.setText("Error: Invalid number format.");
} catch (IllegalArgumentException e) {
resultLabel.setText("Error: " + e.getMessage());
}
}
});
setVisible(true);
}
private String convertNumberToWord(int num) {
switch (num) {
case 1:
return "One";
case 2:
return "Two";
case 3:
return "Three";
case 4:
return "Four";
case 5:
return "Five";
case 6:
return "Six";
case 7:
return "Seven";
case 8:
return "Eight";
case 9:
return "Nine";
default:
throw new IllegalArgumentException("Number out of range (1-9)");
}
}
public static void main(String[] args) {
new NumberToWord();
}
}
在这个程序中,我们定义了一个NumberToWord
类,它继承自JFrame
,用于创建主窗口。我们添加了一个文本框numberField
供用户输入数字,一个按钮convertButton
用于触发转换操作,以及一个标签resultLabel
用于显示结果或错误信息。
在convertButton
的事件监听器中,我们尝试将文本框中的内容转换为整数,并根据输入的数字显示对应的英文单词。如果用户输入的不是数字或者数字不在1到9的范围内,我们会捕获NumberFormatException
和IllegalArgumentException
异常,并在resultLabel
中显示错误信息。
这个程序遵循了异常处理的规范,如引用2和3所述,通过try-catch
块捕获异常,并在方法签名中使用throws
关键字声明可能抛出的异常。同时,根据引用7,我们处理了检查性异常(如IllegalArgumentException
)和非检查性异常(如NumberFormatException
)。程序中的异常处理逻辑也符合引用9中提到的异常处理规范。
研究模式展开阅读更多资料、详细回答