在Java中,我使用jtexfield和jbutton构建了一个名为dashboard.java的GUI类,jbutton的操作是从jtexfield获取文本并将其存储在字符串中。但是我还有一个名为testbot.java的java类,它是一个脚本,需要使用字符串,但是我还没有找到一种将字符串从仪表板.java传递到testbot.java的方法。我已经搜索过但未找到有关传递字符串的问题的答案。下面是我的类dashboard.java中的代码如何存储jbutton事件,但是我再次希望它也将字符串发送到testbot.java类,以便在那里使用它。
private void jButtonSaveMouseClicked(java.awt.event.MouseEvent evt) {
// String profile;
String Fname;
String Sname;
String email;
String Phone;
String address1;
String address2;
String zip;
String City;
String Country;
String Creditcard;
String CVV;
String Year;
String Month;
String Type;
Fname=jTextFirstname.getText();
Sname=jTextSecondname.getText();
email=jTextEmail.getText();
Phone=jTextPhonenumber.getText();
address1=jTextAddress1.getText();
address2=jTextAddress2.getText();
zip=jTextZipcode.getText();
City=jTextCity.getText();
Country=(String) jCombocuntry.getSelectedItem();
Creditcard=jTextcreditnumber.getText();
CVV=jTextCVV.getText();
Year=(String) jComboYear.getSelectedItem();
Month=(String) jCombomonth.getSelectedItem();
Type=(String) jComboBox2.getSelectedItem();
//String sprofile;
//sprofile=jComboBox5.insertItemAt()
//System.out.println(Type); tested combobox val sen print
//knappen kmr ta info
jLabel12.setText("saved");
}
最佳答案
首先,分开您的关注点:您的鼠标侦听器方法不应包含太多代码。而是,您应该编写将所需信息“拉”在一起的辅助方法。理想情况下,您不能只保留10个不同的变量,而是先定义代表用户,地址等内容的类。然后,您传递这些类的实例。
而“如何传递”归结为:通过传递一些东西!
换句话说:方法jButtonSaveMouseClicked()
存在于拥有所有这些UI元素(可能是JFrame或其他)的类中。该类也可以具有该类TestBot的字段。然后,您只要需要就可以在另一个类上调用方法。您会看到,框架了解其他对象,例如jTextFirstname
。这样就可以在该对象上调用方法。您的测试机器人将与此没有什么不同。
更进一步:您的方法听起来是错误的。您的用户界面不应该知道周围有一个“测试机器人”,可能是用来测试用户界面本身的。更为“真实的世界”解决方案的工作方式有所不同:您要通知其他特定类的类(该TestBot)应该允许注册侦听器。然后,测试机器人可以将自己注册到仪表板,并且只要仪表板需要,它就可以将其某些更改通知其侦听器。
换句话说:避免“要测试的东西”取决于“测试者”。它应该反过来工作。