Java 单击主框架上的按钮后打开的新框架上的JLabel文本不会更改
我在frame1上有一个按钮,点击它打开frame2,它有一个按钮和一个标签。单击frame2上的按钮时,JLabel文本不会更改。单击frame2上的按钮时,我想更改frame2上的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
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。你的镜框没有被处理掉。