我正在开发一个有2个课程的程序。第一个是仅用于程序的GUI。另一方面是使用所需数据创建新文件的代码。
我想使用用户在jTextField中写入的文本。但我的问题是,我无法将文本保存在String中,而是在其他类中使用代码保存用户输入。
所以在Class NetworkComponentFrame 中是以下代码:
public class NetworkComponentFrame extends javax.swing.JFrame {
/* GUI Code */
public static void main(String args[]) {
String ID = jTextField1.getText();
/* other code */
}}
在Class NetworkComponent 中,目前是以下代码:
public class NetworkComponent {
public static void New(){
NetworkComponentFrame ID = new NetworkComponentFrame();
/*other code */}}
名称只是一些占位符。我希望这是足以帮助我解决问题的信息。
答案 0 :(得分:0)
您可以通过创建NetworkComponentFrame类的构造函数NetworkComponent或static属性来传递值。 e.g
public class NetworkComponentFrame extends javax.swing.JFrame {
/* GUI Code */
public String ID;
public static void main(String args[]) {
ID = jTextField1.getText();
/* other code */
}}
在你的第二堂课
public class NetworkComponent {
public static void New(){
s.o.p(NetworkComponentFrame.ID);
/*other code */}}
答案 1 :(得分:0)
我认为你想要反过来。在GUI中实例化NetworkComponent
并在NetworkComponent
中使用setter方法,并使用文本字段中的文本设置NetworkComponent
对象中的文本。
public class NetworkComponent {
String ID;
public void setId(String text){
ID = text;
}
}
public class NetworkComponentFrame extends javax.swing.JFrame {
NetworkComponent network = new NetWorkComponent(); <-- NetworkComponent object
JButton button = new JButton();
JTextField textField = new JTextField();
public NetworkComponentFrame(){
button.addActionListener(new ActionListener(){
public actionPerformed(ActionEvent e){
String text = textField.getText();
network.setId(text); <-- set the ID here
}
});
}
}
答案 2 :(得分:0)
如果我理解它是正确的,你可以在main函数中定义String ID,但在NetworkComponentFrame类中定义为public,这样你可以在你从你的类创建一个对象后到达任何你想要的地方。
例如:
public class NetworkComponentFrame extends javax.swing.JFrame {
public String ID_text;
/* GUI Code */
public static void main(String args[]) {
ID_text = jTextField1.getText();
/* other code */
}}
public class NetworkComponent {
public static void New(){
NetworkComponentFrame ID = new NetworkComponentFrame();<
String test = ID.ID_text;
/*other code */}}
您的示例代码存在问题。您确定在非静态对象中调用 public static void main 函数吗?
扩展:U也可以使用getter和setter。