试图打印到JTextArea

use*_*005 2 java generics user-interface swing stack

我试图找出一种方法来打印到JTextArea而不抛出异常.目前我正在抛出NullPointerException但是在我尝试打印到JTextArea时.我不确定它出错的地方或原因.有人请帮帮我.谢谢.

 import java.awt.EventQueue;
 import java.util.LinkedList;
 import java.util.Queue;
 import java.util.Stack;
 import javax.swing.JFrame;
 import javax.swing.JButton;
 import javax.swing.JLabel;
 import javax.swing.JScrollPane;
 import javax.swing.SwingConstants;
 import javax.swing.JTextField;
 import javax.swing.JScrollBar;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 import javax.swing.JTextArea;

 public class TicketLine {

private JFrame frame;
private JTextArea textArea;

public static void main(String[] args) {

    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                TicketLine window = new TicketLine();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public TicketLine() {
    initialize();
}

/**
 * Initialize the contents of the frame.
 */
private void initialize() {

        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JButton nextButton = new JButton("Next Person");
        nextButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                Queue<String> queue = new LinkedList<String>();
                queue.offer("Megan");
                queue.offer("Kate");
                queue.offer("Conan");
                queue.offer("Jay");
                queue.offer("Bert");
                queue.offer("Ernie");
                queue.offer("Mickey");
                queue.offer("Goofy");
                queue.offer("Optimus");
                queue.offer("Megatron");

                Stack<String> ticketList = ticketList();

                while(queue.size() > 0)
                          // System.out.println(queue.remove() + " wins tickets to " + ticketList.pop());
    // NullPointerException HAPPENS HERE!
                textArea.setText(queue.remove() + "wins tickets to " + ticketList.pop());
            }
        });
        nextButton.setBounds(165, 197, 106, 23);
        frame.getContentPane().add(nextButton);

        JLabel lblNewLabel = new JLabel("To Display Next Winner Press the Button");
        lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
        lblNewLabel.setBounds(90, 156, 245, 30);
        frame.getContentPane().add(lblNewLabel);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(0, 0, 2, 2);
        frame.getContentPane().add(scrollPane);

        JTextArea textArea = new JTextArea();
        textArea.setBounds(90, 38, 245, 91);
        frame.getContentPane().add(textArea);

}

public static Stack<String> ticketList() {
    Stack<String> tickets = new Stack<String>();
    tickets.push("Olympus Has Fallen");
    tickets.push("Jurassic Park");
    tickets.push("The Patriot");
    tickets.push("Matrix");
    tickets.push("Gettysburg");
    tickets.push("Gods and Generals");
    tickets.push("White House Down");
    tickets.add((int) (Math.random() * 5), "Star Wars");
    tickets.add((int) (Math.random() * 5), "Star Wars");
    tickets.add((int) (Math.random() * 5), "Star Wars");
    return tickets;
}
 }
Run Code Online (Sandbox Code Playgroud)

我有报价的地方我没有任何问题,当我切换到另一个方向,除了它不会在JTextArea中打印它在Eclipse本身打印出结果.

Rei*_*eus 6

你正在隐藏变量textArea.更换

JTextArea textArea = new JTextArea();
Run Code Online (Sandbox Code Playgroud)

textArea = new JTextArea();
Run Code Online (Sandbox Code Playgroud)