【问题标题】:Passing JTextField to another class将 JTextField 传递给另一个类
【发布时间】:2013-07-24 06:38:54
【问题描述】:

我对 Java 很陌生,我正在尝试将 JTextField 传递给另一个类。 这是我的代码:

SellWindow类发送JTextField的方法:

public JTextField sendTextField(){
    return addItemField;
}

EnterAction类中JTextField的获取方法:

public JTextField getItemField(){
    SellWindow field=new SellWindow();
    addItem=field.sendTextField();
    return addItem;
}

执行EnterAction类中的数据:

public void enterData(){
    System.out.println(this.getItemField().getText()); //output blank 
    System.out.println(this.addItem); //output "null"        
} 

我不知道实际问题出在哪里。执行代码后,它会给出代码的 cmets 中所述的以下输出。如果有人可以解决此问题,那将非常有帮助。我对 Java 很陌生,这是我的第一个程序。

【问题讨论】:

  • 在这些行中:SellWindow field=new SellWindow(); addItem=field.sendTextField();您正在创建新的 SellWindow 对象并尝试访问其 TextField,创建对象后该对象可能为空(null)。
  • 我很难相信enterData()的第一行会输出一个空行,而第二行输出null。你能构造一个self-contained example吗?
  • “我是 Java 新手,这是我的第一个程序。” 开始编写命令行程序!当您开始进行 GUI 编程时,这个问题的答案应该很明显了。除非你是 19 世纪的英国剧院老板,否则它的拼写是“节目”——通常是这样拼写的(即不正确)。
  • @AndrewThompson 你的意思是说对于这类问题的答案应该很明显(我不能在那里与你争论)或者这个特定问题的答案,提供的代码,很明显吗?如果是后者,我就看不到了。
  • @Dukeling '一般'..

标签: java swing class jtextfield


【解决方案1】:

尚不完全清楚您要做什么,但据我所知,您有一个 SellWindow 框架和一个 EnterAction 框架,并且您希望在两者之间传递用户输入。我看到的一个问题是,在 getItemField 方法中,您正在创建一个新的 SellWindow 实例,但没有显示它或根本不允许用户与之交互。相反,我会将 SellWindow 设为 JDialog,一旦用户关闭对话框,就获取输入。试试这个:

public JTextField getItemField(){
    SellWindow field=new SellWindow(null, true);
    field.setVisible(true);
    addItem=field.sendTextField();
    return addItem;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2013-12-10
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2020-04-21
    相关资源
    最近更新 更多