单击按钮时,不会调用下一个 activity

When button clicked, next activity don't get called

请帮帮我。我是 java 的初学者。这是我的 StartUp_page 按钮代码。单击 ok 按钮时,它应该调用 AdminLogin。它显示 1 但没有调用 AdminLogin。

StartUp_page

btnOk.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                String input = textField.getText();
                if (input.equals("1"))
                {
                    AdminLogin login=new AdminLogin();
                    login.setVisible(true);
                    setVisible(false);
                    System.out.println(input);
                    //dispose();
                }
                else
                {
                    System.out.println("2");                }
            }

管理员登录

  package GUI;

import java.awt.EventQueue;
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.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

public class AdminLogin extends JFrame{


    private JTextField textField;
    private JTextField textField_1;
    private JPanel contentPanel;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    AdminLogin frame = new AdminLogin();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public AdminLogin() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100,100,350,300);
        contentPanel= new JPanel();
        contentPanel.setBorder(new EmptyBorder(5,5,5,5));
        setContentPane(contentPanel);
        contentPanel.setLayout(null);


        JLabel lblName = new JLabel("Name");
        lblName.setBounds(53, 69, 46, 14);
        contentPanel.add(lblName);

        textField = new JTextField();
        textField.setBounds(119, 66, 121, 20);
        contentPanel.add(textField);
        textField.setColumns(10);

        JLabel lblPassword = new JLabel("Password");
        lblPassword.setBounds(53, 128, 46, 14);
        contentPanel.add(lblPassword);

        textField_1 = new JTextField();
        textField_1.setBounds(119, 125, 121, 20);
        contentPanel.add(textField_1);
        textField_1.setColumns(10);

        JButton btnNewButton = new JButton("OK");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            }
        });
        btnNewButton.setBounds(211, 183, 89, 23);
        contentPanel.add(btnNewButton);
    }

    public void setVisible(boolean b) {
        // TODO Auto-generated method stub

    }

}

基本问题是,您 AdminLogin class 从 JFrame 扩展,但从 class 中创建 JFrame 的第二个实例,那么实际显示的是哪一帧?!就个人而言,我首先将 extends JFrame 替换为 extends JPanel,然后将面板简单地添加到 JFrameJDialog 的实例中,如 required

你真的应该避免使用 null 布局,像素完美布局是现代 ui 设计中的一种错觉。影响组件个体大小的因素太多,none 是您可以控制的。 Swing 旨在与核心的布局管理器一起工作,丢弃这些将导致无穷无尽的问题和问题,您将花费越来越多的时间来尝试纠正

查看 Laying Out Components Within a Container 了解一些详细信息。

您可能还想看看 The Use of Multiple JFrames, Good/Bad Practice? and How to Make Dialogs and How to Use CardLayout 以了解有关替代方案的一些想法