Java 在JFrame中更新JLabel中的字符串变量
我有个小问题。我已经创建了2个JFrames,在主框架中,我想显示一个字符串名称。在另一个我可以提供我的名字。当我将“name”保存到变量name时,它不会在主框架中更新。如何更新此框架Java 在JFrame中更新JLabel中的字符串变量,java,swing,Java,Swing,我有个小问题。我已经创建了2个JFrames,在主框架中,我想显示一个字符串名称。在另一个我可以提供我的名字。当我将“name”保存到变量name时,它不会在主框架中更新。如何更新此框架 public class Main extends JFrame { IFrame frame = new IFrame ("Main"); JButton button_name = new JButton("Enter your name"); IFrame frame_n
public class Main extends JFrame {
IFrame frame = new IFrame ("Main");
JButton button_name = new JButton("Enter your name");
IFrame frame_name = new IFrame ("What is your name?");
Point center =
GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint(); //Get center of screen
static Image Icon = Toolkit.getDefaultToolkit().getImage("Icon.png");
ButtonListener button_listen = new ButtonListener();
/**************************************************************************/
String name = new String();
JButton button_get_name = new JButton("OK");
JTextField field_name = new JTextField(15);
JPanel panel_name = new JPanel();
/**************************************************************************/
public Main(){
this.setIconImage(Icon);
button_name.addActionListener(button_listen);
button_get_name.addActionListener(button_listen);
JFrame.setDefaultLookAndFeelDecorated(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(4,1));
frame.add(new JLabel (name, SwingConstants.CENTER));
frame.add(button_name);
frame.add(new JLabel ("Table 2", SwingConstants.CENTER));
frame.add(panel_name);
frame.setBounds(center.x - 400 / 2, center.y - 400 / 2, 400, 400); //Set window in a center of screen
frame.setVisible(true);
/**********************************************************************/
panel_name.setBackground(Color.CYAN);
/**********************************************************************/
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main();
}
//Class responsible for detectin which button was pushed
public class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button_name){
CreateFrameName();
}
if (e.getSource() == button_get_name){
GetName();
}
}
}
//Creates a frame for name provide
public void CreateFrameName() {
int frame_name_width = 280;
int frame_name_height = 100;
frame.dispose();
frame_name.setBounds(center.x - frame_name_width / 2, center.y -
frame_name_height / 2, frame_name_width, frame_name_height);
frame_name.setLayout(new GridLayout(2,1));
frame_name.add(field_name);
frame_name.add(button_get_name);
frame_name.setAlwaysOnTop(true);
frame_name.setVisible(true);
}
public void GetName() {
name = field_name.getText();
frame_name.dispose();
frame.setVisible(true);
System.out.println(name);
}
}
您需要某种可以在两个框架之间共享的模型,第一个框架将设置模型的值,第二个框架将提醒模型状态已更改,允许它更新其视图考虑如下well@MadProgrammer,我已经将其更改为一个jframe。你能告诉我怎么做这个模型吗?问候语