有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在两个JFrame之间传递值

我有两个, 我想从另一个打开的jframe到另一个打开的jframe获取值。 当点击jframe1open按钮显示jframe2并在文本字段中键入一些文本,然后点击ok按钮时,文本字段值想要获得jframe1{}。如何做到这一点我试过了,但我找不到办法

这可能吗

enter image description here

enter image description here


共 (2) 个答案

  1. # 1 楼答案

    创建一个在jframe2中接受jframe1的方法 在open button action事件中,从jframe2创建一个对象,并调用接受jframe1的方法

    因此,当你点击jframe2中的Ok按钮时,通过methdo将文本字段值传递给jframe1对象(你传递给jframe2)

    public class jframe1 {
    
      public void actionPerformed(ActionEvent a){
         jfame2 jf2 = new jframe2();
         jf2.setJframe1(this);
      }
      public void updateLable(String value){
         lblIdk.setText(value);
      }
    }
    
    
    public class jframe2 {
      private jframe1 jf1;
      public void setJframe1(jframe1 jf1){
         this.jf1 = jf1;
      }
      public void actionPerformed(ActionEvent a){
         this.jf1.updateLable(txtidk.getText());
      }
    }
    
  2. # 2 楼答案

    试试这个

    enter image description here

    import java.awt.FlowLayout;
    import javax.swing.*;
    import java.awt.event.*;
    
    class TestFrameExample extends JFrame  implements ActionListener{
        static JLabel label ; 
        public static TestFrameExample test;
        TestFrameExample()
       {
          JPanel panel = new JPanel();
          panel.setLayout(new FlowLayout());
          label = new JLabel("This is a label!");
          JButton button = new JButton("Open");
          button.setText("Press me");
          button.addActionListener(this);
          panel.add(label);
          panel.add(button);
          add(panel);
          setSize(300, 300);
          setLocationRelativeTo(null);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setVisible(true);
      }
    
       public void actionPerformed(ActionEvent a)
       {
              new TestFrameExample1();
      }
      public static void main(String s[]) {
          test=new TestFrameExample();
      }
    }
    
    class TestFrameExample1 extends JFrame  implements ActionListener {
      JTextField t;
      TestFrameExample test;
      public TestFrameExample1()
      {
            setSize(300, 300);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            setLayout(null);
            t=new JTextField();
            t.setBounds(100,20,150,20);
            JButton button=new JButton("oK");
            button.setBounds(100,50,100,30);
            button.addActionListener(this);
            add(t);
            add(button);
        }
        public void actionPerformed(ActionEvent a)
       {
            test.label.setText(t.getText());
       }
      }