gpt4 book ai didi

java - NumberFormatException 方法

转载 作者:行者123 更新时间:2023-11-30 11:25:06 25 4
gpt4 key购买 nike

大家好,我想请人帮帮我。我想在同一个类中编写一个方法来使用 NumberFormatException,它采用 JTextField 的值并检查它是否为数字并打印。另外,如何在 actionPerformed 方法中实现此代码?

这是主要方法

public class main {
public static void main(String args[]){
JavaApplication19 is = new JavaApplication19("title");
is.setVisible(true);
}
}

这是 GUI 类:

public class JavaApplication19 extends JFrame{
private final JButton button;
private final JTextField text;
private final JLabel lable;



/**
* @param args the command line arguments
*/
public JavaApplication19(String title){
setSize(500, 200);
setTitle(title);
setDefaultCloseOperation(JavaApplication19.EXIT_ON_CLOSE);

button = new JButton("enter only number or i will kill you");
text = new JTextField();
lable = new JLabel("numbers only");
JPanel rbPanel = new JPanel(new GridLayout(2,2));
rbPanel.add(button);
rbPanel.add(text);
rbPanel.add(lable);

Container pane = getContentPane();
pane.add(rbPanel);

button.addActionListener(new ButtonWatcher());

private class ButtonWatcher implements ActionListener{

public void actionPerformed(ActionEvent a){
Object buttonPressed=a.getSource();
if(buttonPressed.equals(button))
{

}
}
}
}

最佳答案

if(buttonPressed.equals(button))
{
try {
// try something
}
catch (NumberFormatException ex) {
// do something
}
}

//try something 应该是您获取输入文本和解析的代码(例如 Integer.parseInt(textField.getText()))。如果由于未输入数字以外的内容而无法解析,它将抛出 NumberFormatException

参见 Exceptions tutorial如果您需要有关如何使用异常的更多信息

编辑:方法

像这样简单的东西就可以了

public int parseInput(String input) throws NumberFormatException {
return Integer.parseInt(input);
}

如果你想捕获异常,或者像这样

public static int parseInput(String input) {
int number = 0;
try {
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
someLabel.setText("Must be a number");
return -1; // return 0
}
}

然后在你的 actionPerformed 中你可以做这样的事情

if(buttonPressed.equals(button))
{
int n;
if (parseInput(textField.getText()) != -1){
n = parseInput(textField.getText());
// do something with n
}
}

编辑: boolean 方法

public boolean isNumber(String input){
for (char c : input.toCharArray()){
if (!Character.isDigit(c))
return false;
}
return true;
}

用法

if(buttonPressed.equals(button))
{
if (isNumber(textField.getText()){
// do something
}
}

编辑:或捕获异常

public boolean isNumber(String input){
try {
Integer.parseInt(input);
return true;
} catch (NumberFormatException ex){
return false;
}
}

关于java - NumberFormatException 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20462137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com