我有一个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()方法的输出重定向到报表面板?
答案 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,否则以某种方式显示它。