java - 将焦点从新的 jFrame 转移到前一个 jFrame

标签 java swing jframe

我有两个 JFrame jFrame1jFrame2,在 jFrame1 中有一个文本字段和一个按钮,点击按钮 jFrame2 就会出现。在 jFrame2 中还有一个文本字段和一个按钮。我将在 jFrame2 的文本字段中键入一个名称,然后单击其中的按钮,该文本字段值应该出现在 jFrame1 的文本字段上。但我没有将焦点转移到 jFrame1,我尝试了代码,

在 jFrame1 中

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        jFrame2 abc=new jFrame2();
        abc.setVisible(true);
    }   


public void inserting(String name){
   jTextField1.requestFocusInWindow();
   jTextField1.setText(name);

 }

在 jFrame2 中,

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        jFrame1 abc1=new jFrame1();
       // abc1.transferFocus();  //not working

        abc1.inserting(jTextField1.getText());
        this.dispose();
    } 

我正在获取方法inserting()的值,但它没有被设置到文本字段中。如果我再次为 jFrame1 提供 setVisible(true) ,它会起作用,但我不想那样做。有没有其他方法可以解决这个问题?

最佳答案

要将焦点移至该字段,您应该使用 requestFocusInWindow,但我认为这不会使有问题的窗口重新获得焦点。

您可以使用 WindowListener 来监视您可以响应的更改。

例如,在 jFrame1actionPerformed 处理程序中,您可以

Frame02 frame2 = new Frame02();
frame2.addWindowListener(new WindowAdapter() {

    @Override
    public void windowClosed(WindowEvent we) {

        Frame02 frame2 = (Frame02) we.getWindow();
        jTextField1.setText(frame2.getText());

        toFront();
        jTextField1.requestFocusInWindow();

    }

});

frame2.setVisible(true);
frame2.toFront();
frame2.requestFocus();

jFrame1 正在请求来自 jFrame2 的文本,因为 jFrame2 不知道 jFrame1,没有引用到它。

jFrame2中,您需要添加一个WindowListener来处理文本字段焦点的请求

addWindowListener(new WindowAdapter() {
    public void windowOpened(WindowEvent we) {
        jTextField1.requestFocus();
    }
});

关于java - 将焦点从新的 jFrame 转移到前一个 jFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11982650/

相关文章:

events - 扩展面板中的 Scala Swing react

java - Eclipse 内存分析器 (MAT) : Shows no currently running processes

java - JFrame 问题(删除文本图像添加新图像)

java - 在 JFrame 上制作透明的 JPanel

java - 编译器错误说我不重写抽象方法 keyReleased

java - Netbeans:如何更改 JTree 的外观

java - 通过 Docker 在 Tomcat 上部署 .war - 404

java - Apache Crunch 管道如何生成 map reduce 作业?

java - PHP SoapClient : Object passed is received as NULL in Java

java - 在java中获取自定义JPanel的深拷贝