【问题标题】:Display output from a method on a JPanel in Java在 Java 中显示 JPanel 上方法的输出
【发布时间】:2013-03-18 23:58:16
【问题描述】:

我有一个 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() 方法的输出重定向到报告面板?

【问题讨论】:

    标签: java swing


    【解决方案1】:

    您可以修改您的计算以返回一个字符串,其中包含您要打印到文本区域的信息。我假设您知道如何创建非 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() );
    

    如果我没听错?

    【讨论】:

      【解决方案2】:

      我想你想问的是,“什么是 JLabel?”。您可以使用 JLabel 从计算方法中输出文本。 或者你可以从你的计算方法中返回一个字符串,并以其他方式显示它。

      【讨论】:

      • 问题不在于 JLabel。我可以为我的方法创建一个字符串返回,但我的问题是如何引导返回的字符串显示在报表 JPanel 上?
      • @user843681 可以使用JLabelJTextFieldJTextAreaJOptionPane 或通过自定义绘画显示。您的问题非常模糊,并且您几乎没有付出任何努力来实际研究这个问题。我先看看creating a GUI with Swing
      • 我研究了很久。那里的解决方案大多不正确。
      • @user843681: "the solution out there are mostly incorrect" -- 什么翻转?如果没有具体问题,您的问题“大多不正确”。当你自己说你是 Java 新手时,你怎么知道它们是“不正确的”?
      猜你喜欢
      • 2011-07-18
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多