如何从JFrame将数据输出到JPanel

时间:2015-05-21 20:49:41

标签: java swing jpanel

我有一个名为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中创建下面列出的数据元素,这些元素位于按钮下方。

非常感谢任何帮助。

2 个答案:

答案 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。