Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击主框架上的按钮后打开的新框架上的JLabel文本不会更改_Java_Swing - Fatal编程技术网

Java 单击主框架上的按钮后打开的新框架上的JLabel文本不会更改

Java 单击主框架上的按钮后打开的新框架上的JLabel文本不会更改,java,swing,Java,Swing,我在frame1上有一个按钮,点击它打开frame2,它有一个按钮和一个标签。单击frame2上的按钮时,JLabel文本不会更改。单击frame2上的按钮时,我想更改frame2上的JLabel文本 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Gui{ JFrame frame1, frame2; JPanel panel1, panel2; JButto

我在frame1上有一个按钮,点击它打开frame2,它有一个按钮和一个标签。单击frame2上的按钮时,JLabel文本不会更改。单击frame2上的按钮时,我想更改frame2上的JLabel文本

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

public class Gui{
    JFrame frame1, frame2;
    JPanel panel1, panel2;
    JButton firstButton, secondButton;
    JLabel prompt;

    public static void main(String[] args){
        Gui myGui = new Gui();
        myGui.ui1();
    }

    public void ui1(){
        frame1 = new JFrame();
        frame1.setSize(500,500);
        frame1.setTitle("First Frame");

        panel1 = new JPanel();
        firstButton = new JButton("click me");

        frame1.add(panel1);
        panel1.add(firstButton);

        ListenForButtonOnUi1 buttonListener = new ListenForButtonOnUi1();
        firstButton.addActionListener(buttonListener);

        frame1.setVisible(true);

    }

    public void ui2(){
        frame2 = new JFrame();
        frame2.setSize(300,300);
        frame2.setTitle("hell yeah");

        panel2 = new JPanel();
        secondButton = new JButton("done");

        prompt = new JLabel("please fill in the details");
        frame2.add(panel2);
        panel2.add(prompt)
        panel2.add(secondButton);
        frame2.setVisible(true);

        ListenForButtonOnUi2 buttonListener = new ListenForButtonOnUi2();
        secondButton.addActionListener(buttonListener);


    }

    private class ListenForButtonOnUi1 implements ActionListener{
        public void actionPerformed(ActionEvent e){
            if(e.getSource() == firstButton){
                Gui myGui = new Gui();
                myGui.ui2();
            }
        }
    }

    private class ListenForButtonOnUi2 implements ActionListener{
        public void actionPerforme(ActionEvent e){
            if(e.getSource() == secondButton){
                prompt.setText("text changed");

            }
        }
    }
}

尝试
public void actionPerforme(ActionEvent e)
public void actionPerformed(ActionEvent e)
@99everest提示:下次在您尝试重写现有方法之前放置一个
@Override
注释,如果该方法在您的
ActionListener
界面中甚至不存在,它将抛出一个错误。还可以尝试签出。不赞成使用多个JFrame。或者看看你是否也应该设置你的JFrames。无法处理您的帧。请尝试
public void actionPerforme(ActionEvent e)
public void actionPerformed(ActionEvent e)
@99everest提示:下次在您尝试重写现有方法之前放置一个
@Override
注释,如果该方法在您的
ActionListener
界面中甚至不存在,它将抛出一个错误。还可以尝试签出。不赞成使用多个JFrame。或者看看你是否也应该设置你的JFrames。你的镜框没有被处理掉。