gpt4 book ai didi

java - 如何将变量从 jtextfield 传递到另一个 JFrame/类中的另一个 jtextfield?

转载 作者:行者123 更新时间:2023-12-02 07:59:00 27 4
gpt4 key购买 nike

我的 JTextField 遇到问题。我不知道如何将变量从 JTextField (位于 JFrame A 中)传递到另一个 JTextField (位于 JFrame B 中)。我尝试这样做,但它没有执行任何操作,即它没有收到任何运行时/编译错误,也没有收到文本。

我尝试在 ClassB 中执行此操作:

ClassA a = new ClassA();
String text = a.jtextfield1.getText();

但是它不起作用!!

你能帮我一个简单的例子吗?我做错了什么?

附注:我正在使用 netbeans

[编辑 --] 这是 ClassA 的代码:

public class ClassA extends javax.swing.JFrame {

public ClassA() {
initComponents();
}

public void initComponents() {

jTextField1 = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jTextField1.setText("Some text blah blah");
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(33, 33, 33)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(124, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(86, Short.MAX_VALUE))
);

pack();
}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new ClassA().setVisible(true);
}
});
}

public javax.swing.JTextField jTextField1;

}

这是ClassB的代码:

public class ClassB extends javax.swing.JFrame {

public ClassB() {
initComponents();
}

public ClassA a = new ClassA();


public void initComponents() {

jTextField1 = new javax.swing.JTextField();
getText = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

getText.setText("GetText");
getText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
getTextActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(31, 31, 31)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(getText)))
.addContainerGap(143, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)
.addComponent(getText)
.addContainerGap(49, Short.MAX_VALUE))
);

pack();
}

public void getTextActionPerformed(java.awt.event.ActionEvent evt) {
a.jTextField1.getText(); //this doesn't work. How can I it makes work?
}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new ClassB().setVisible(true);
}
});
}

public javax.swing.JButton getText;
public javax.swing.JTextField jTextField1;

}

提前致谢。

最佳答案

如果您实例化一个新的 ClassA 实例(顺便说一句,语法是 new ClassA()),那么您将拥有...一个新实例,其中包含另一个 jtextfield1,而不是现有的 ClassA 实例。您需要将对现有 ClassA 实例的引用传递给 ClassB 实例:

构造ClassB时:

ClassB theClassB = new ClassB(theClassA);

你似乎没有掌握类和对象的基本 OO 概念,甚至没有掌握 Java 的语法。我建议现在不要使用 Swing,先学习基础知识。 Swing 很难,对于不理解这些概念的开发人员来说太难了。

阅读 Java tutorial 的基础知识和 OO 类(class)

关于java - 如何将变量从 jtextfield 传递到另一个 JFrame/类中的另一个 jtextfield?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9199136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com