繁体   English   中英

Netbeans GUI将文本字段值传递给App中未在View中定义的操作

[英]Netbeans GUI passing textfield values to action defined in App not in View

我在Netbeans中创建了一个简单的应用程序,它包含一些用于用户输入的文本字段和一个按钮,我已经通过Netbeans界面将一个操作与该按钮相关联,但是我决定在该应用程序中而不是在View中定义该操作,以便遵循MVC的一些概念。

动作正常,每次单击按钮时我都可以打印出控制台。

但是为了做我想做的事,我需要jTextFields中包含的值!

这个怎么做? 这是TestApp.java中的代码:

@Action
public void ClickedOnButton() {
    System.out.println("Clicked ok");
    System.out.println("Will now attempt to read notes.ini");

    ReadNotesFile();
}

这是TestView.java中的代码:

javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(tpa_fixer.TPA_FixerApp.class).getContext().getActionMap(TPA_FixerView.class, this);
    jButton1.setAction(actionMap.get("ClickedOnButton")); // NOI18N

您尝试了什么,它怎么不起作用? 使JTextField显示文本的标准方法是在其上调用setText() 您是否尝试过这样做?

也,

  • 您是否已阅读有关这些概念的Swing教程,包括使用文本组件,JButton和ActionListeners?
  • 您在这些尝试中是否看到任何错误? 如果是这样,请在此处发布。
  • 您的“控件”类(带有侦听器代码的类)是否与“视图”或GUI类分开? 如果是这样,控件是否具有有效的参考视图?

编辑
您声明:

我不想在jTextFields中设置文本,我想从它们中获取值,并在单击按钮时运行的方法中使用它。 除非可以在View类中的动作定义主体内以某种方式传递参数,否则我看不到如何执行此操作。

在这种情况下,我需要从gui字段中提取信息以便在其他类中进行操作,这是我要做的事情:

  • 您可以给每个字段一个关联的公共getText()方法,然后使用控件对视图对象的引用来调用这些方法。 例如说视图有一个nameField JTextField,然后我给它一个getNameFieldText()方法,该方法返回nameField.getText();
  • 如果您有许多这样的字段,那么仅使用一个getText方法可能会更有效,但允许它使用一个参数让您选择要从中提取文本的字段。 为了使此工作高效进行,我有时给我的GUI一个HashMap,然后在String键中传递控制权,该键允许getText方法获取正确的JTextfield,获取其文本并返回它。 我经常使用与与JTextField关联的JLabel相同的字符串作为我的关键字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM