我在尝试让这个程序运行时遇到问题,applet加载,但是当我输入一个数字并单击确定时,似乎没有任何事情发生......我不确定我是否有阵列问题或者我的问题可能是谎言。
我似乎无法弄清楚我到底做错了什么。
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class LargestApplet extends Applet implements ActionListener {
private static final long serialVersionUID = 1L;
int number =0;
double highNumber=-1;
double lowNumber=-1;
// Create components for applet
Label numberLabel = new Label("Enter a number:");
TextField numberField = new TextField(5);
Button okButton = new Button("OK");
Button cancelButton = new Button("Cancel");
Label highNumberOutputLabel = new Label("The Highest number is: 0 ");
public void init() {
add(numberLabel);
add(numberField);
numberField.requestFocus();
add(okButton);
add(cancelButton);
add(highNumberOutputLabel);
setSize(400, 500); // Sets the size of the applet window
}
public void actionPerformed(ActionEvent e) {
int number = 0, highNumber = -1;
if (numberField.getText().length() == 0) {
numberField.requestFocus();
JOptionPane.showMessageDialog(null,
"Number Cannot blank", "D A T A E R R O R",
JOptionPane.ERROR_MESSAGE);
return;
}
try {
number = Integer.parseInt(numberField.getText());
} catch (NumberFormatException ex) {
numberField.requestFocus();
JOptionPane.showMessageDialog(null, "Number is invalid",
"D A T A E R R O R", JOptionPane.ERROR_MESSAGE);
return;
}
if (number < 0 || number > 10) {
numberField.requestFocus();
JOptionPane.showMessageDialog(null,
"Number must be between 0 and 10",
"D A T A E R R O R", JOptionPane.ERROR_MESSAGE);
return;
}
// Determine highest number
Integer [] numberAr = {number};
for(int i = 0; i < numberAr.length; i++)
{
number += numberAr[i];
if (numberAr[i] < lowNumber)
lowNumber = numberAr[i];
else if (numberAr[i] > highNumber)
highNumber = numberAr[i];
}
// Display the results
highNumberOutputLabel.setText("The Highest Number is: "
+ (highNumber));
}
}
答案 0 :(得分:1)
您没有将ActionListener添加到按钮,因此按下按钮将不起作用。通过在相关Button上调用addActionListener(this)
来解决此问题。只是让你的GUI类扩展ActionListener(一般来说这也不是一个好主意)并没有神奇地给按钮提供动作监听器代码,如果你不首先给它代码来产生一个行为,按下按钮将没有任何效果。
更重要的是,您应该使用Swing(JApplet,JButton)而不是AWT进行编码。虽然Swing被认为已经过时,但相比之下,AWT是史前的。
对我们来说最重要的是,如果您的代码没有抛出任何内容,则不应该在您的问题上发布NullPointerExceptions。