我在尝试将数组列表中的单词输出到屏幕上的文本字段时遇到问题。每当我运行程序并在收件箱字段中键入几个单词并单击分析按钮时,没有任何输出,任何想法?
import javax.swing.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;
public class SApplet extends Applet implements ActionListener {
TextField input,output;
Label label1;
Button b1, b2;
JLabel lbl;
String Word1;
String wordArrayList[];
public void init(){
label1 = new Label("Please enter your text: ");
add(label1);
label1.setBackground(Color.orange);
label1.setForeground(Color.black);
input = new TextField(20);
add(input);
output = new TextField(20);
add(output);
b1 = new Button("Analyze");
b2 = new Button("Reset");
add(b1);
add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
setBackground(Color.orange);
}
public void actionPerformed(ActionEvent e){
try{
String a = null;
ArrayList<String> wordArrayList = new ArrayList<String>();
if (e.getSource()== b1)
{
Word1 = input.getText();
for(String word : Word1.split(" ")) {
wordArrayList.add(word);
}
Iterator<String> word = wordArrayList.iterator();
if (word.hasNext()) {
// output.setText(word.next());
// System.out.println(word.next());
a += word.next();
}
while (word.hasNext()) {
a += ", " + word.next();
output.setText(a);
// System.out.println(a);
}
}
if(e.getSource() == b2)
input.setText("");
output.setText("");
}
catch(NumberFormatException a){
lbl.setForeground(Color.red);
lbl.setText("Invalid Entry!");
}
}
}
答案 0 :(得分:4)
将您的if
语句括在大括号中
if (e.getSource() == b2) {
input.setText("");
output.setText("");
}
否则第二个语句将始终在ActionListener
答案 1 :(得分:4)
你的问题就在这里。
if(e.getSource() == b2)
input.setText("");
output.setText("");
你可能打算写这个。
if(e.getSource() == b2) {
input.setText("");
output.setText("");
}
但是因为你遗漏了大括号,每次运行此方法时都会消隐output
,而不仅仅是触发事件的按钮是b2
。