2013-07-24 2 views
0

Я очень новичок в Java, и я пытаюсь передать JTextField другому классу. Вот мой код:Передача JTextField другому классу

Способ отправить JTextField из SellWindow класса:

public JTextField sendTextField(){ 
    return addItemField; 
} 

метод, чтобы получить JTextField в EnterAction классе:

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"   
} 

Я не знаю, где проблема. После выполнения кода он дает следующий результат, как указано в комментариях кода. Это будет очень полезно, если кто-то может решить эту проблему. Я очень новичок в Java, и это моя первая программа.

+0

В этих строках: SellWindow field = new SellWindow(); addItem = field.sendTextField(); вы создаете новый объект SellWindow и пытаетесь получить доступ к его TextField, который после создания объекта будет, вероятно, пустым (null). – FazoM

+1

Мне трудно поверить, что первая строка 'enterData()' будет выводить пустую строку со второй строкой, выводящей «null». Можете ли вы построить [автономный пример] (http://sscce.org/#selfcon)? – Dukeling

+0

* «Я очень новичок в Java, и это моя первая программа». * Запустите программы командной строки для кодирования! К тому времени, когда вы подходите к программированию GUI, ответ на это должен быть очевиден. И это написано «программа», если вы не владеете английским театром 19-го века, который обычно пишется так (то есть неправильно). –

ответ

0

Не совсем понятно, что вы пытаетесь сделать, но из того, что я могу сказать, у вас есть кадр SellWindow и рамка EnterAction, и вы хотите передать пользовательский ввод между ними. Одна из проблем, которую я вижу, заключается в том, что в методе getItemField вы создаете новый экземпляр SellWindow, но не показываете его или не позволяете пользователю взаимодействовать с ним вообще. Вместо этого я бы сделал SellWindow как JDialog, и как только пользователь закроет диалог, получите вход. Попробуйте следующее:

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