java - JTextfield 文本到 Controller

标签 java model-view-controller

在我的程序中,我有以下代码

panel.java

public class Panel extends JPanel {
    private JTextField myText;
    private JButton confirm;

    public Panel(){
        createComponents();
        addComponents();
    }

    private void createComponents(){
         myText = new JTextField(10);
         confirm = new JButton("confirm");
         confirm.addActionListner(new Controller(myText.getText()));
    }

    private void addComponents(){
        add(mytext);
        add(confirm);
    }
}

我有 Controller

Controller.java

 public class Controller implements ActionListner {
    private String text;

    public Controller(String text){
        this.text = text;
    }

    @Override
    public void ActionPerformed(ActionEvent e){
        System.out.println(text);
    }
 }

问题是:当我将文本传输到 Controller 时,我收到一个空的String。当我不使用 Controller 时,当我询问时我可以看到我的文本 confirm.addActionListner(new ActionListner()...);

我需要使用 Controller ,因为我需要以 MVC 模式进行编程。是否可以选择将我的文本传输到 Controller ?

提前致谢

最佳答案

正如我已经评论过的:不要将文本提供给您的 Action 监听器,只需在您的文本字段上给他一个引用,然后在您的 Action 监听器中调用 getText() 即可。

更改confirm.addActionListner(new Controller(myText.getText()));
confirm.addActionListner(new Controller(myText));

public class Controller implements ActionListner {
    private String text;

    public Controller(String text){
        this.text = text;
    }

    @Override
    public void ActionPerformed(ActionEvent e){
        System.out.println(text);
    }
 }

public class Controller implements ActionListner {

    private JTextField myTextField;
    public Controller(JTextField myTextField){
        this.myTextField = myTextField;
    }

    @Override
    public void ActionPerformed(ActionEvent e){
        System.out.println(myTextField.getText());
    }
 }

关于java - JTextfield 文本到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26780935/

相关文章:

javascript - 带有数组值的 JSON 字典到 C# 对象

java - 为什么我的应用程序在尝试建立 http 连接时不断崩溃?

java - MVC 模式在 Java 中启用事件按钮

codeigniter 最佳实践 - 多个模型

c# - 基于 Controller 结构的MVC自定义 View 路由

java - 将 Value bean/java 传递给 servlet

java - 同一个集合 : do they have to return elements in the same order? 的两个 java.util.Iterators

java - 有什么方法可以知道执行字节代码时 JVM 的速度吗?

java - 尽管使用了 super 关键字,为什么我的派生类方法没有从基类调用重写方法?

java - 在主线程/程序终止时运行方法?