[英]How to add in JLabel array
我不知道該怎么辦。 請幫我
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class Sample{
static JLabel label[];
static int count = 0;
public static void main (String [] args){
JFrame frame = new JFrame("Sample");
JTextField tf = new JTextField(10);
JButton bt = new JButton("Okay");
frame.setSize(800,600);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
frame.add(tf);
frame.add(bt);
bt.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
int sum = count++;
String getTF = tf.getText();
label[count] = new JLabel(getTF);
}
});
}
}
它說NullPointerException。 如何將getTF
添加到label[]
? 我很困惑,找不到合適的答案,可能有人會幫我。
您尚未初始化數組:
static JLabel label[]; // "label" reference is null
您需要使用實際的數組對象對其進行初始化,例如
static JLabel label[] = new JLabel[10];
但是,這將具有固定的數組大小(在這種情況下為10)。 您將不能向該數組添加超過10個元素。 您應該使用一個動態增長的數組ArrayList
代替:
static List<JLabel> label = new ArrayList<>();
然后像這樣添加新標簽
label.add(new JLabel(getTF));
除此之外,僅在絕對必要時才應使用static
字段-更好地創建應用程序類的實例,並使字段為非靜態。
您還應該刪除通配符導入(如java.util.*
),而僅導入所需的類和接口(如java.util.List
和java.util.ArrayList
)。 否則,您可能會遇到名稱沖突(例如java.awt.List
和java.util.List
之間)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.