看到您的代码,您似乎没有包含事件处理部分(并且您需要包含它才能完成工作)
作为简要介绍,您需要在代码中执行此操作:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FrmLogIn f = new FrmLogIn();
User.setText(f.UName.getText());
f.setVisible(true);
}
}
注意:假设User
是一个JLabel
和UName
一个JTextField
并且FrmLogIn
已经扩展JFrame
并且您已经设置了必填字段,例如布局和大小JFrame
有关事件处理的更多信息,请查看此处
编辑 2:
示例代码片段 - 你想要这样的东西(它只是一个粗略的,让你知道如何继续前进)
编辑
@madProgrammer 评论的 3 - 将null
布局替换为FlowLayout
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.*;
import javax.swing.JTextField;
class FrmLogIn extends JFrame{
JLabel User;
public FrmLogIn() {
setLayout(new FlowLayout());
setSize(200,200);
User = new JLabel("");
// User.setBounds(20,30,100,40);
add(User);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class ForTest extends JFrame{
JButton enter;
JTextField UName;
public ForTest() {
setLayout(new FlowLayout());
setSize(300,300);
enter = new JButton("enter");
//enter.setBounds(20,20,100,30);
UName = new JTextField();
//UName.setBounds(40,80,60,30);
add(UName);
add(enter);
setVisible(true);
enter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FrmLogIn f = new FrmLogIn();
f.User.setText(UName.getText());
f.setVisible(true);
setVisible(false);
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new ForTest();
}
}