Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序:运行前获取输入_Java_Swing_Joptionpane - Fatal编程技术网

Java应用程序:运行前获取输入

Java应用程序:运行前获取输入,java,swing,joptionpane,Java,Swing,Joptionpane,线程“main”java.lang.NullPointerException中的异常 checkUsernames是唯一的类。当我尝试运行应用程序时,程序将进一步执行(不使用字符串用户名和字符串密码继续),而不等待输入。如何修复此问题?您的私有静态成员似乎根本没有初始化。只有在使用创建的每个对象之前初始化它,才能通过NullPointerException 我不知道你在说什么。您必须对所有这些对象执行类似的操作: public class checkUsernames extends JFram

线程“main”java.lang.NullPointerException中的异常


checkUsernames
是唯一的类。当我尝试运行应用程序时,程序将进一步执行(不使用字符串用户名和字符串密码继续),而不等待输入。如何修复此问题?

您的私有静态成员似乎根本没有初始化。只有在使用创建的每个对象之前初始化它,才能通过NullPointerException

我不知道你在说什么。您必须对所有这些对象执行类似的操作:

public class checkUsernames extends JFrame {
private static JTextArea textArea1;
private static JButton button1;
private static JScrollPane scrollPane1;
private static JTextField textField1;
private static JPasswordField passwordField1;
private static JLabel label3;
private static JButton button2;
private static JLabel label1;
private static JLabel label2;

public checkUsernames() {
    initComponents();
}

public static void main(String[] args) throws IOException {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Nimbus isn't available");
        }

        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                checkUsernames GUI = new checkUsernames();
                GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                GUI.setVisible(true);
            }
        });
        String username = textField1.toString();
        String password = passwordField1.toString();

您没有输入用户名或密码;您正在创建一个文本区域UI元素,当您输入它们时,该元素可以接受它们。

您的私有静态成员似乎都没有初始化。只有在使用创建的每个对象之前初始化它,才能通过NullPointerException

我不知道你在说什么。您必须对所有这些对象执行类似的操作:

public class checkUsernames extends JFrame {
private static JTextArea textArea1;
private static JButton button1;
private static JScrollPane scrollPane1;
private static JTextField textField1;
private static JPasswordField passwordField1;
private static JLabel label3;
private static JButton button2;
private static JLabel label1;
private static JLabel label2;

public checkUsernames() {
    initComponents();
}

public static void main(String[] args) throws IOException {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Nimbus isn't available");
        }

        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                checkUsernames GUI = new checkUsernames();
                GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                GUI.setVisible(true);
            }
        });
        String username = textField1.toString();
        String password = passwordField1.toString();

您没有输入用户名或密码;您正在创建一个文本区域UI元素,当您输入它们时,该元素可以接受它们。

WellinvokeLater稍后将调用代码。它保证了textfield1.toString()在checkUserNames()之后执行,调用器稍后将调用代码。它保证了textfield1.toString()在checkUserNames()之后执行

如果您希望在等待输入时停止代码执行,请将
JFrame
设为模态
JDialog
JOptionPane

如果您希望在等待输入时停止代码执行,将
JFrame
改为模态
JDialog
JOptionPane

为什么不改用?这似乎马上就能解决你的问题

下面是一个简单的例子:

private static JTextArea textArea1 = new JTextArea();
你为什么不改用它呢?这似乎马上就能解决你的问题

下面是一个简单的例子:

private static JTextArea textArea1 = new JTextArea();

这就是问题所在。当我执行应用程序时,我应该输入我的用户名和密码。但我没有输入任何信息,这就是问题所在。当我执行应用程序时,我应该输入我的用户名和密码。但是它在我没有输入任何信息的情况下继续进行:\invokeLater通过在单独的线程上运行GUI来实现这一点。如果您希望GUI在其他任何事情发生之前显示,您应该能够通过在主线程上启动它来实现。我将
checkUsernames GUI=newcheckusernames();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true)在主方法内部和调用器外部。如何使程序等待输入?它执行主方法lol中的所有内容。我现在感觉很愚蠢…为了更快地获得更好的帮助,请在您的主页上发布一个类似我发布的内容。请注意,我的回答是几分钟后的,因为我必须将其转换为SSCE(在我准备发表评论之前)。抱歉,安德鲁,我太匆忙了,我应该停下来等待。感谢您的链接,我将在以后的问题上尝试这样做。invokeLater通过在单独的线程上运行GUI来实现这一点。如果您希望GUI在其他任何事情发生之前显示,您应该能够通过在主线程上启动它来实现。我将
checkUsernames GUI=newcheckusernames();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true)在主方法内部和调用器外部。如何使程序等待输入?它执行主方法lol中的所有内容。我现在感觉很愚蠢…为了更快地获得更好的帮助,请在您的主页上发布一个类似我发布的内容。请注意,我的回答是几分钟后的,因为我必须将其转换为SSCE(在我准备发表评论之前)。抱歉,安德鲁,我太匆忙了,我应该停下来等待。谢谢你的链接,我将在以后的问题上尝试这样做。