【问题标题】:how to pass string to a class with a button action如何通过按钮操作将字符串传递给类
【发布时间】:2019-03-02 19:45:31
【问题描述】:

在 Java 中,我用 jtexfield 和一个 jbutton 构建了一个名为 dashboard.java 的 GUI 类,jbutton 的作用是从 jtexfield 获取文本并存储在一个字符串中。但是我有另一个名为 testbot.java 的 java 类,它是一个脚本,需要使用字符串,但我还没有找到将字符串从dashboard.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");

    }

【问题讨论】:

标签: java string swing selenium user-interface


【解决方案1】:

首先,将您的关注点分开:您的鼠标侦听器方法不应该包含这么多代码。相反,您应该编写将所需信息“拉”到一起的辅助方法。理想情况下,您不要只保留 10 个不同的变量,而是开始定义代表用户、地址等的类。然后传递这些类的实例。

而“如何传递”,归结为:有东西可以传递!

换句话说:您的方法jButtonSaveMouseClicked() 存在于拥有所有这些UI 元素(可能是JFrame 或其他东西)的类中。该类也可以具有该类 TestBot 的字段。然后,您只需在需要时调用其他类的方法。你看,你的框架知道其他对象,比如jTextFirstname。这允许您调用该对象的方法。您的测试机器人与此没有什么不同。

更进一步:您的方法听起来是错误的。您的 UI 应该知道周围有一个“测试机器人”,它可能用于测试 UI 本身。更“真实世界”的解决方案工作方式不同:您想要通知特定其他类(即 TestBot)的类应该允许注册 listeners。然后测试机器人可以将自己注册到仪表板,并且只要仪表板想要,它就可以通知它的侦听器一些更改。

换句话说:避免“要测试的东西”依赖于“测试者”。它应该反过来工作。

【讨论】:

  • 你的意思是我应该为dashboard.java类创建另一个类来存储然后testbot.java将从那里读取吗?抱歉,我现在还不擅长编程。
猜你喜欢
  • 1970-01-01
  • 2011-01-30
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多