簡體   English   中英

如何在JLabel數組中添加

[英]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.Listjava.util.ArrayList )。 否則,您可能會遇到名稱沖突(例如java.awt.Listjava.util.List之間)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM