Java 如何使用按钮获得实时JFrame更新
对于我的JavaGUI程序,我有一个问题,请看这里 今天我已经在这个项目上工作了几个小时,我已经完成了整个“登录”窗口的设置,但是有一件事似乎对我不起作用。我在“登录”表单下面有一个标签,如果我用不同的字符串值获取了错误的密码或用户名,它不会更新。代码如下:Java 如何使用按钮获得实时JFrame更新,java,swing,user-interface,Java,Swing,User Interface,对于我的JavaGUI程序,我有一个问题,请看这里 今天我已经在这个项目上工作了几个小时,我已经完成了整个“登录”窗口的设置,但是有一件事似乎对我不起作用。我在“登录”表单下面有一个标签,如果我用不同的字符串值获取了错误的密码或用户名,它不会更新。代码如下: package main; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JButton; import java.awt.Bord
package main;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import java.awt.Color;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JLayeredPane;
import javax.swing.JFormattedTextField;
import javax.swing.SwingConstants;
import java.awt.Window.Type;
import javax.swing.JPasswordField;
public class Login {
private JFrame frmConsoleappReborn;
private JTextField textField_1;
private JPasswordField passwordField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login window = new Login();
window.frmConsoleappReborn.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Login() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmConsoleappReborn = new JFrame();
frmConsoleappReborn.setType(Type.UTILITY);
frmConsoleappReborn.getContentPane().setBackground(new Color(0, 0, 0));
frmConsoleappReborn.setTitle("ConsoleApp Reborn");
frmConsoleappReborn.setBackground(new Color(0, 0, 255));
frmConsoleappReborn.getContentPane().setForeground(Color.GREEN);
frmConsoleappReborn.setBounds(100, 100, 565, 369);
frmConsoleappReborn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmConsoleappReborn.getContentPane().setLayout(null);
JLabel lblWelcomeToMy = new JLabel("Welcome to my amazing program!");
lblWelcomeToMy.setForeground(new Color(255, 0, 0));
lblWelcomeToMy.setBounds(174, 11, 242, 14);
frmConsoleappReborn.getContentPane().add(lblWelcomeToMy);
JLabel lblUserName = new JLabel("User name");
lblUserName.setForeground(new Color(255, 0, 0));
lblUserName.setBackground(new Color(255, 255, 255));
lblUserName.setBounds(158, 70, 67, 25);
frmConsoleappReborn.getContentPane().add(lblUserName);
textField_1 = new JTextField();
textField_1.setForeground(new Color(0, 0, 0));
textField_1.setBackground(new Color(255, 0, 0));
textField_1.setColumns(10);
textField_1.setBounds(235, 72, 118, 20);
frmConsoleappReborn.getContentPane().add(textField_1);
JLabel lblPassword = new JLabel("Password");
lblPassword.setForeground(new Color(255, 0, 0));
lblPassword.setBounds(158, 146, 76, 14);
frmConsoleappReborn.getContentPane().add(lblPassword);
passwordField = new JPasswordField();
passwordField.setBackground(Color.RED);
passwordField.setBounds(235, 143, 118, 20);
frmConsoleappReborn.getContentPane().add(passwordField);
JLabel loginStatus = new JLabel("Your login status will show up here.");
loginStatus.setForeground(Color.WHITE);
loginStatus.setBounds(184, 195, 219, 14);
frmConsoleappReborn.getContentPane().add(loginStatus);
JButton btnLogin = new JButton("Login");
btnLogin.setBounds(151, 228, 256, 61);
frmConsoleappReborn.getContentPane().add(btnLogin);
btnLogin.addActionListener(new ActionListener() {
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent arg0) {
if(textField_1.getText().equals("Admin"))
{
if(passwordField.getText().equals("Admin"))
{
loginStatus.setText("Login successful!");
} else {
loginStatus.setText("Login failed. Please check password.");
}
} else {
loginStatus.setText("Login failed. Please check username");
}
}
});
}
}
祝你一切顺利
Groax请删除所有无关代码。我知道我,可能还有很多其他人,不想通读一百行代码来找出其中的五行。“当我输入错误的密码时,它不会更新,”你是在暗示当你输入正确的密码时,它会更新标签吗?您收到的是“登录成功”消息,而不是“登录失败”消息?还有Jashaszun说的话;请至少编辑掉导入内容(如果不是更多的话)。避免使用
null
布局,像素完美的布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计宗旨是与核心的布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间试图纠正这些问题,并且您的程序对meThanks@MadProgrammer运行良好我不知道以前的问题是什么,因为它在大约5-10分钟前才开始对我起作用。