我有一个java swing应用程序。我的目的是将数组的元素打印到 JTextField
但是当我按下 jbutton 时,我收到以下异常
线程“AWT-EventQueue-0”中的异常 java.lang.ArrayIndexOutOfBoundsException:3
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame implements ActionListener {
/**
* @param args the command line arguments
*/
JTextField jtext;
JPanel panel;
public Main()
{
jtext = new JTextField(" " );
Container pane = getContentPane();
JButton b =new JButton("Click Me");
panel = new JPanel();
panel.add(jtext);
panel.add(b);
b.addActionListener(this);
pane.add(panel);
}
public void actionPerformed(ActionEvent e)
{
String[] strArray = new String[] {"John", "Mary", "Bob"};
int j;
for( j=0;j< strArray.length;j++)
{
}
jtext.setText(strArray[j]);
}
public static void main(String[] args) {
// TODO code application logic here
Main m = new Main();
m.setVisible(true);
}
}
最佳答案
您正在运行循环而不执行任何操作。当你最终退出循环时,j 确实会变成 3,因为它不匹配 j 小于 strArray.length 条件。但由于 Java 中的数组是基于 0 的,因此您正在尝试获取三元素数组的第四个元素。
以下代码应该可以解决您的问题。放置它而不是 for 循环。
StringBuilder sb=new StringBuilder();
for(int j=0;j< strArray.length;j++)
{
sb.append(strArray[j]);
}
jtext.setText(sb.toString());
关于java - 打印 JTextField 中的数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15383750/