gpt4 book ai didi

java - 尝试打印到JTextArea

转载 作者:行者123 更新时间:2023-12-03 21:20:30 25 4
gpt4 key购买 nike

我试图找出一种不抛出异常即可打印到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;
}
}


在有引号的地方,以其他方式切换t时没有任何问题,除了它不会在JTextArea中打印而在Eclipse本身中打印出结果。

最佳答案

您是shadowing变量textArea。更换

JTextArea textArea = new JTextArea();




textArea = new JTextArea();

关于java - 尝试打印到JTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com