为什么我的导出按钮不会显示我的字段的输出

时间:2014-11-13 04:29:10

标签: java swing

这里有关于堆栈溢出问题的新问题。我有一个令我难过的程序。我已经能够让它工作,但不是我想要的方式,我想知道你们中的一些人是否可以看看它并帮助我弄清楚我做错了什么。请参阅以下内容:

2 个答案:

答案 0 :(得分:0)

首先,程序不会在输出

类中编译
    String ageStr = Input.getAge().toString();
    int ageInt = Integer.parseInt(ageStr);

因为 getAge()返回地址,而不是JTextField的文本。整数无法解析,因为它不仅包含整数。 所有你的静态getter只会返回非预期的数据。

尝试在此示例之后更改类输入中的那些:

    public static String getAge() {
        return age.getText();
    }

并且不要忘记在课程输出中添加 outputPanel

    add(outputPanel, BorderLayout.CENTER);

此外,

  • 按其他人的说法制作非静态的方法
  • 将代码分离/封装到拟合方法中并改进您的API
    • 保持整体持久代码外观。

一个选项是定义对象变量并更改输出构造函数:

Input input;     // keeps a ref to input

public Output(Input input) {
    super("Output", 300, 300);
    this.input = input;

    String ageStr = input.getAge();
...

致电:

public void actionPerformed(ActionEvent e){ 
    output = new Output(Input.this); 
    output.display();
...

希望它对你有所帮助。

答案 1 :(得分:0)

好的,这就是我改变了,就像我说我仍然收到错误。到目前为止,我试图修复的是与年龄相关的代码。当我弄清楚如何使这项工作时,我将继续工作。请参阅下面的新代码。如果我把所有东西都保持静止,我可以让它工作,但我知道这不是合适的方法。试图修复格式。