gpt4 book ai didi

java - 按钮 在 Java GUI (Swing) 中将鼠标放在按钮上后出现吗?

转载 作者:行者123 更新时间:2023-12-01 10:04:12 25 4
gpt4 key购买 nike

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class null_login_type extends JFrame{

private JLabel admin_password_label,heading,login_label,password_label,id_label;
private JButton user_login_button,admin_login_button,enquiry_button,logins1,signup;
private JTextField user_field,password_field,admin_field,admin_password_field;
private ButtonGroup bg;
null_login_type()
{
this.setLayout(null);
user_login_button = new JButton("Login as User");
logins1 = new JButton("Login");
user_field = new JTextField("User_field");
id_label = new JLabel("Id_label");


user_login_button.setBounds(0,100, 150, 30);
logins1.setBounds(250,200,100,30);
user_field.setBounds(200,60,150,30);

add(user_login_button);

event e = new event();
user_login_button.addActionListener(e);
}
public class event implements ActionListener
{
public void actionPerformed(ActionEvent e){

logins1.setBounds(250,60,150,30);;
// user_field.setBounds(250,60,150,30);;
// add(user_field);
add(logins1);
logins1.setVisible(true);
}
}


public static void main(String args[])
{
null_login_type gui = new null_login_type();

gui.setSize(420,300);
gui.setLocation(530,200);
gui.setVisible(true);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;

}
}

否则该按钮不可见。当我将鼠标放在登录1区域时,按钮就会出现,然后它就在那里。

如果我在操作监听器中添加注释部分并删除操作监听器中的logins1,即使我不在上面使用鼠标,也会打印输出。

最佳答案

如果您修改某些内容,则需要调用 repaint()revalidate(),请参阅后面的内容。您还需要在 EDT 中创建 GUI,并在 JFrame 中使用 Panel(总是比依赖默认值更好):

import java.awt.event.*;

public class null_login_type extends JFrame{
private JLabel admin_password_label,heading,login_label,password_label,id_label;
private JButton user_login_button,admin_login_button,enquiry_button,logins1,signup;
private JTextField user_field,password_field,admin_field,admin_password_field;
private ButtonGroup bg;
private JPanel panel;
null_login_type()
{
panel = new JPanel();
this.setContentPane(panel);
this.setLayout(null);
user_login_button = new JButton("Login as User");
logins1 = new JButton("Login");
user_field = new JTextField("User_field");
id_label = new JLabel("Id_label");
user_login_button.setBounds(0,100, 150, 30);
logins1.setBounds(250,200,100,30);
user_field.setBounds(200,60,150,30);
panel.add(user_login_button);
event e = new event();
user_login_button.addActionListener(e);
}
public class event implements ActionListener
{
public void actionPerformed(ActionEvent e){
logins1.setBounds(250,60,150,30);;
// user_field.setBounds(250,60,150,30);;
// add(user_field);
panel.add(logins1);
panel.repaint();
panel.revalidate();
}
}

public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable() {
public void run() {
null_login_type gui = new null_login_type();
gui.setSize(420,300);
gui.setLocation(530,200);
gui.setVisible(true);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);;
}
});
}
}

还请使用标准约定来命名您的类,即 NullLoginType。不要调用你的内部类event,存在一个Event类,选择更合适的,它不代表一个事件而是一个事件处理程序...

关于java - 按钮 在 Java GUI (Swing) 中将鼠标放在按钮上后出现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36573618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com