我有一个名为JFrame
的{{1}}。在MainGUI
内部,我已经传递了三个LinkedList ll1,ll2,ll3。
这些LinkedList充满了数据,我试图在屏幕上将其中一个打印到我的MainGUI
。我只是使用for循环并使用JPanel
将内容打印到屏幕上。
所以现在我有System.out.println
,它有三个按钮。
MainGUI
New Tasks
In Progress Tasks
每个按钮都有不同的LinkedList ll1,ll2,ll3等
我希望能够单击该按钮,并在我创建的Completed Tasks
中创建下面列出的数据元素,这些元素位于按钮下方。
非常感谢任何帮助。
答案 0 :(得分:2)
由于您没有提供任何代码,我认为您无法理解LinkedList
如何在具有GUI的程序中进行交互。
首先,当使用按钮时,您总是需要通过添加ActionListener
来指示他们点击某些,如this answer中所述。
其次,如果要将列表数据添加到JPanel
,有几种方法可以做到。一个JList
,或者如果您希望用户能够复制和粘贴数据(我发现它非常方便),JTextArea
,...请务必致电{ {1}}以阻止用户摆弄您提供的数据。考虑setEditable(false)
,如果JTextArea
包含字符串,则会出现这种情况:
添加我们的ll1
包含JPanel
:
JTextArea
现在,我们点击按钮点击时执行某些操作:
JTextArea txtArea = new JTextArea();
txtArea.setEditable(false);
panel.add(txtArea);
这样,您可以根据需要多次单击该按钮。请注意,如果您在显示内容后向btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
txtArea.setText(null); //clear out old text
for(String str: ll1) {
txtArea.append(str+"\n");
}
panel.revalidate(); //repaint JPanel
}
});
添加更多内容,则它本身不会直观地更新,您将始终需要再次单击该按钮或进一步查看监听器。
答案 1 :(得分:2)
您可以尝试添加一个JTextArea或任何适合您要显示的JComponent到要显示数据的JPanel。使用其方法将链接列表中的数据写入该JComponent,例如append()
如果你正在使用JTextArea。