如何将变量从一个JFrame传递到另一个JFrame

 275514908_9369d7 发布于 2023-02-12 19:33

我有两个JFrames newAccessLevels.java,它有两个按钮"Level 1""Level 2"和newAccessPanel.java 我需要获得用户选择"1或2"的级别,accessPanel所以我可以在标题中显示它accessPanel.java例如访问级别1,访问级别2.如何做到这一点.下面是示例代码,因此如果单击级别1,则将打开newAccessPanel JFrame,标题为*ACCESS LEVEL 1,反之亦然,级别2:

newAccessLevels.java

package securitySystem;

import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;

public class newAccessLevels extends JFrame{

public static void main (String args[]){
    newAccessLevels gui= new newAccessLevels ();
    gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    gui.setTitle("Access Levels");
    gui.setSize(400,400);
    gui.setLocationRelativeTo(null);
    gui.setVisible(true);       
}

JButton btnLevel1= new JButton("Levels 1");
JButton btnLevel2= new JButton("Level 2");


public newAccessLevels (){
    setLayout (null);

    btnLevel1.setBounds(120,70, 150, 30);
    add(btnLevel1);

    btnLevel2.setBounds(120,130, 150, 30);
    add(btnLevel2); 
}

public void calcButtons()
{
    btnLevel1.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) 
        {
            newAccessPanel gui =new newAccessPanel();
            gui.setSize (360, 450);
            gui.setLocationRelativeTo(null);
            gui.setVisible(true);
            dispose();              
        }
    });

    btnLevel2.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) 
        {
            newAccessPanel gui =new newAccessPanel();
            gui.setSize (360, 450);
            gui.setLocationRelativeTo(null);
            gui.setVisible(true);
            dispose();              
        }
    });
}

}

newAccessPanel.java

package securitySystem;

import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;

public class newAccessPanel extends JFrame{

public static void main (String args[]){
    newAccessPanel gui= new newAccessPanel ();
    gui.setSize (360, 450);
    gui.setLocationRelativeTo(null);
    gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    gui.setVisible(true);
    gui.setTitle("ACCESS LEVEL '1/2'");     
    //gui.setLayout(new BorderLayout());
    //gui.setBackground(Color.BLACK);       
}

}

1 个回答
  • 嗨,这是一种如何做到这一点的方法,只需要构建一个带有构造函数的新JFrame,该构造函数可以重现所需的参数.

    第一个JFrame,有按钮

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JFrame;
    import javax.swing.JButton;
    
    public class Frame1 extends JFrame{
    
        private String mensaje;
        private JButton btnHola;
        private JButton btnAdios;
    
        public Frame1() {
            getContentPane().setLayout(null);
    
            btnHola = new JButton("Hello");
            btnHola.setBounds(63, 210, 89, 23);
            getContentPane().add(btnHola);
            btnHola.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    mensaje = Frame1.this.btnHola.getText();
                    Frame2 frame2 = new Frame2(mensaje);
                }
            });
    
            btnAdios = new JButton("Bye");
            btnAdios.setBounds(245, 210, 89, 23);
            getContentPane().add(btnAdios);
    
            btnAdios.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                mensaje = Frame1.this.btnAdios.getText();
                Frame2 frame2 = new Frame2(mensaje);
            }
        });
        }
    
        public static void main(String[] args) {
            Frame1 frame = new Frame1();
            frame.setVisible(true);
        }
    }
    

    第二个JFrame,收到消息.

    import javax.swing.JFrame;
    
    public class Frame2 extends JFrame {
        public Frame2(String message) {
            super();
            setVisible(true);
            setTitle(message);
        }
    }
    

    我希望这对你有帮助.问候!

    2023-02-12 19:35 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有