显示Java中JPanel上方法的输出

时间:2013-03-18 23:58:17

标签: java swing

我有一个GUI,从文本区域获取输入,然后单击按钮生成报告。报告应显示在输入区域下方。单击该按钮,输入数据将传递给名为Calculate()的void方法,此时System.out.printf()会在控制台上显示正确的结果。如何将此输出重定向到报告区域?

public class Progress extends JFrame
{
   JTextArea input;
   JButton calculate;
   JPanel report;

   public void Notify()
     {
         calculate = new JButton("Calculate");
        calculate.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                Calculate();
            }
        });
     }
}

...

public void Calculate()
    {
        GenerateReport m = new GenerateReport();
        m.Parsecsv(input.getText());

    }

那么,作为Java的新手,我想知道如何将Calculate()方法的输出重定向到报表面板?

2 个答案:

答案 0 :(得分:3)

您可以修改您的Calculate以返回包含您要打印到文本区域的信息的字符串。我假设您知道如何创建非void的简单方法并返回数据类型:

public String Calculate() { 
    <something to get the text needed is done here>
    return <text from report>;
}

然后你可以制作一个“JOptionPane.showMessageDialog(Calculate())”来显示报告,或者你可以如上所述创建一个JLabel来在你正在使用的框架内打印报告。

类似的东西:

JLabel lab1 = new JLabel(null, Calculate() );

如果我理解你的话?

答案 1 :(得分:2)

我想你要问的是,“什么是JLabel?”。您可以使用JLabel从calculate方法输出文本。 或者你可以从你的calculate方法返回一个String,否则以某种方式显示它。