gpt4 book ai didi

java - JTextfield 文本到 Controller

转载 作者:行者123 更新时间:2023-11-30 03:41:18 25 4
gpt4 key购买 nike

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

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/

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