Java 如何从JFrame将数据输出到JPanel

Java 如何从JFrame将数据输出到JPanel,java,swing,jpanel,Java,Swing,Jpanel,我有一个名为MainGUI的JFrame。在MainGUI中,我通过了三个LinkedList ll1、ll2、ll3 这些LinkedList充满了数据,我正试图在屏幕上将其中一个数据打印到我的JPanel。我习惯于执行for循环,并使用System.out.println将内容打印到屏幕上 现在我有了MainGUI,它有三个按钮 新任务正在进行的任务已完成的任务 每个按钮都有不同的链接列表ll1、ll2、ll3等。 我希望能够单击按钮,并在按钮下创建的JPanel中列出以下数据元素 非常感谢

我有一个名为
MainGUI
JFrame
。在
MainGUI
中,我通过了三个LinkedList ll1、ll2、ll3

这些LinkedList充满了数据,我正试图在屏幕上将其中一个数据打印到我的
JPanel
。我习惯于执行for循环,并使用
System.out.println
将内容打印到屏幕上

现在我有了
MainGUI
,它有三个按钮

新任务
正在进行的任务
已完成的任务

每个按钮都有不同的链接列表ll1、ll2、ll3等。
我希望能够单击按钮,并在按钮下创建的
JPanel
中列出以下数据元素


非常感谢您的帮助。

由于您没有提供任何代码,我想您在理解
LinkedList
如何在具有GUI的程序中进行交互时遇到了困难

首先,当使用按钮时,您始终需要通过添加一个
ActionListener
,指示他们在单击按钮时执行某些操作,如中所述。
其次,如果要将列表数据添加到
JPanel
,有几种方法可以实现。一个
JList
,或者如果您希望用户能够复制和粘贴数据(我发现它非常方便),一个
JTextArea
。。。只需确保调用
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
  } 
});

这样,您可以根据需要多次单击该按钮。请注意,如果在显示后向
ll1
添加更多内容,它本身不会得到视觉更新,您将始终需要再次单击按钮或进一步查看侦听器

由于您没有提供任何代码,我假设您在理解
LinkedList
如何在具有GUI的程序中进行交互时遇到困难

首先,当使用按钮时,您始终需要通过添加一个
ActionListener
,指示他们在单击按钮时执行某些操作,如中所述。
其次,如果要将列表数据添加到
JPanel
,有几种方法可以实现。一个
JList
,或者如果您希望用户能够复制和粘贴数据(我发现它非常方便),一个
JTextArea
。。。只需确保调用
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
  } 
});

这样,您可以根据需要多次单击该按钮。请注意,如果在显示后向
ll1
添加更多内容,它本身不会得到视觉更新,您将始终需要再次单击按钮或进一步查看侦听器

您可以尝试添加一个
JTextArea
或任何适合您要显示的JPanel的JComponent来显示数据。使用链接列表的方法将数据写入该JComponent,例如
append()
如果您使用
JTextArea

,您可以尝试添加一个
JTextArea
或任何适合您要显示数据的JComponent到JPanel中。使用JComponent的方法将链接列表中的数据写入该JComponent,例如
append()
如果您使用的是
JTextArea

,则应提供正在使用的代码示例。看看和。你的问题似乎不完整,不完整,因为你的程序没有代码和有限的描述,你当前的代码有什么问题。到目前为止,这似乎只是一个将信息从一个对象传递到另一个对象的问题。那么,你在哪里卡住了呢?看看你应该提供一个你正在工作的代码示例。看看和。你的问题似乎不完整,不完整,因为你的程序没有代码和有限的描述,你当前的代码有什么问题。到目前为止,这似乎只是一个将信息从一个对象传递到另一个对象的问题。你被困在哪里了?看看