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

Java 如何将变量从一个JFrame传递到另一个JFrame,java,swing,Java,Swing,我有两个JFramesnewAccessLevels.java,它有两个按钮“级别1”、“级别2”和newAccessPanel.java 我需要获得用户在accessPanel上选择“1或2”的级别,以便我可以在accessPanel.java的标题中显示它,例如访问级别1、访问级别2。如何做到这一点。下面是示例代码,因此,如果单击级别1,则newAccessPanel JFrame将以标题*访问级别1打开,反之亦然,用于级别2: newAccessLevels.java package se

我有两个
JFrames
newAccessLevels.java,它有两个按钮“级别1”、“级别2”和newAccessPanel.java 我需要获得用户在
accessPanel
上选择“1或2”的级别,以便我可以在accessPanel.java的标题中显示它,例如访问级别1、访问级别2。如何做到这一点。下面是示例代码,因此,如果单击级别1,则newAccessPanel JFrame将以标题*访问级别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);       
}

}

您好,这是一种方法,您可以这样做,只需使用接收所需参数的构造函数构造一个新的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);
    }
}
我希望这对你有帮助。
你好

您好,这是一种如何实现的方法,您只需使用接收所需参数的构造函数构造一个新的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);
    }
}
我希望这对你有帮助。
你好

你需要显示一些代码片段来澄清你的问题。好的,我必须创建一个新问题并将代码放入其中。你可以编辑该问题而不是创建一个新问题。不要创建新问题,只需编辑此问题。您需要显示一些代码片段来澄清您的问题。好的,我将创建一个新问题并将代码放入其中。您可以编辑该问题而不是创建一个新问题。不要创建新问题,只需编辑此问题即可。