Member 13986703 Ответов: 1

Как мне решить эту ошибку.... исключение в потоке "AWT-eventqueue-0" java.lang.nullpointerexception


Вот мой код......

пакет MyProject;

импорт java.awt.HeadlessException;
импорт java.sql.Connection;
импорт Java.для SQL.Объект PreparedStatement;
импорт java.sql.ResultSet;
импорт java.sql.SQLException;
импорт java.util.logging.Уровень;
импорт java.util.logging.Лесоруб;
импорт javax.swing.JOptionPane;
импорт java.lang.*;

/**
*
* @автор л. с.
*/
общественный класс расширяет класс javax пользователя user1.качели.Форму {

Соединение con = null;
PreparedStatement ps;
Набор РС;
/**
* Создает новую форму User1
*/
публичный Пользователь1() {
initComponents();
}

/**
* Этот метод вызывается из конструктора для инициализации формы.
* Предупреждение: Не изменяйте этот код. Содержание этого метода всегда таково
* регенерируется редактором форм.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="свернутый" desc="сгенерированный код">
частный недействительными initComponents() {

label1 = новый javax.swing.Надписи();
Back1 = новый javax.swing.Jbutton с();
label2 = новый javax.swing.Надписи();
имя пользователя = new javax.swing.Ли();
пароль = новый javax.swing.Ли();
Submit1 = новый javax.swing.Jbutton с();
label3 = новый javax.swing.Надписи();

setDefaultCloseOperation(javax.swing.Оконные константы.EXIT_ON_CLOSE);

label1.setText("имя пользователя:");

Back1.setText("назад");
Back1.addActionListener(новое событие java.awt.Действие actionlistener() {
общественного недействительными событий actionperformed(Ява.авт.событие.ActionEvent evt) {
Back1ActionPerformed(ЭВТ);
}
});

label2.setText("пароль:");

username.addActionListener(новое событие java.awt.Действие actionlistener() {
общественного недействительными событий actionperformed(Ява.авт.событие.ActionEvent evt) {
usernameActionPerformed(ЭВТ);
}
});

password.addActionListener(новое событие java.awt.Действие actionlistener() {
общественного недействительными событий actionperformed(Ява.авт.событие.ActionEvent evt) {
passwordActionPerformed(ЭВТ);
}
});

Submit1.setText("отправить");
Submit1.addActionListener(новое событие java.awt.Действие actionlistener() {
общественного недействительными событий actionperformed(Ява.авт.событие.ActionEvent evt) {
Submit1ActionPerformed(ЭВТ);
}
});

класса javax.качели.GroupLayout layout = новый javax.swing.GroupLayout(getContentPane());
полностью().то setlayout(макет);
макет.setHorizontalGroup(
макет.createParallelGroup(класса javax.качели.Групповая игра.Выравнивание.ВЕДУЩИЙ)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.Групповая игра.Выравнивание.ВЕДУЩИЙ)
.addGroup(layout.createSequentialGroup()
.addGap(15, 15, 15)
.addComponent(Back1))
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addComponent(метка1)
.addGap(103, 103, 103)
.addComponent(имя пользователя, javax.swing.Групповая игра.PREFERRED_SIZE, 121, javax.swing.Групповая игра.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addComponent(метка2)
.addGap(107, 107, 107)
.addComponent(пароль, javax.swing.Групповая игра.PREFERRED_SIZE, 121, javax.swing.Групповая игра.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(145, 145, 145)
.addComponent(Submit1))
.addGroup(layout.createSequentialGroup()
.addGap(121, 121, 121)
.addComponent(метка3, класс javax.качели.Групповая игра.PREFERRED_SIZE, 146, javax.swing.Групповая игра.PREFERRED_SIZE)))
.addContainerGap(161, Short.МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ))
);
макет.setVerticalGroup(
макет.createParallelGroup(класса javax.качели.Групповая игра.Выравнивание.ВЕДУЩИЙ)
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addComponent(Back1)
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.Групповая игра.Выравнивание.ВЕДУЩИЙ)
.addGroup(layout.createSequentialGroup()
.addGap(3, 3, 3)
.addComponent(метка1))
.addComponent(имя пользователя, javax.swing.Групповая игра.PREFERRED_SIZE, класс javax.качели.Групповая игра.DEFAULT_SIZE, класс javax.качели.Групповая игра.PREFERRED_SIZE))
.addGap(47, 47, 47)
.addGroup(layout.createParallelGroup(javax.swing.Групповая игра.Выравнивание.ВЕДУЩИЙ)
.addGroup(layout.createSequentialGroup()
.addGap(3, 3, 3)
.addComponent(метка2))
.addComponent(пароль, javax.swing.Групповая игра.PREFERRED_SIZE, класс javax.качели.Групповая игра.DEFAULT_SIZE, класс javax.качели.Групповая игра.PREFERRED_SIZE))
.addGap(31, 31, 31)
.addComponent(Submit1)
.addGap(63, 63, 63)
.addComponent(метка3, класс javax.качели.Групповая игра.PREFERRED_SIZE, 90, javax.swing.Групповая игра.PREFERRED_SIZE)
.addContainerGap(184, коротко.МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ))
);

упаковка();
}//

частный недействительными Back1ActionPerformed(Ява.авт.событие.ActionEvent evt) {
это.распоряжаться();
}

частный недействительными usernameActionPerformed(Ява.авт.событие.ActionEvent evt) {
// TODO добавьте свой код обработки здесь:
}

частный недействительными passwordActionPerformed(Ява.авт.событие.ActionEvent evt) {
// TODO добавьте свой код обработки здесь:
}

частный недействительными Submit1ActionPerformed(Ява.авт.событие.ActionEvent evt) {




con=MysqlConnection.ConnectionDB();

Строка запроса="выбрать * из пользователей, где имя пользователя=? А пароль=?";

пробовать{
ps = con.prepareStatement(запрос);

ПС.метод setString(1, "имя пользователя".с текстом());
ПС.метод setString(2,пароль.с текстом());

rs = ps.executeQuery(запрос);
если(rs.next())
{

JOptionPane.showMessageDialog(нуль,"поврежденных","поврежденных",JOptionPane.СООБЩЕНИЕ ОБ ОШИБКЕ);

}




еще
{


это.распоряжаться();
}

}



catch (SQLException | HeadlessException ex) {
}







}

/**
* @param args аргументы командной строки
*/
public static void main(String args[]) {
/* Установите внешний вид нимба */
//&ЛТ;редактор-фолд defaultstate="рухнул" описание=" выглядеть и чувствовать себя настройки код (необязательно) "и GT;
/* Если Nimbus (представленный в Java SE 6) недоступен, оставайтесь с внешним видом по умолчанию.
* Подробнее см. http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
пробовать {
для (javax.swing.UIManager.LookAndFeelInfo информация : класса javax.качели.UIManager.getInstalledLookAndFeels()) {
если ("Нимбус".составляет(информация.метод getname())) {
класса javax.качели.UIManager.setLookAndFeel(информация.то getclassname());
перерыв;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException экс) {
Ява.утиль.лесозаготовки.Регистратор.getLogger ("Пользователь1".класс.метод getname()).журнал(Ява.утиль.лесозаготовки.Уровень.Тяжелый, нулевой, бывший);
}
//

//

/* Создание и отображение формы */
java.awt.EventQueue.invokeLater(() -> {
нового пользователя user1().функцию setvisible(истина);
});
}

// Объявление переменных - не изменять
рядовой джавакс,качели.JButton Back1;
рядовой джавакс,качели.JButton Submit1;
рядовой джавакс,качели.Надписи метка1;
рядовой джавакс,качели.Надписи метка2;
рядовой джавакс,качели.Метка3 надписи ;
рядовой джавакс,качели.Пароль ли ;
рядовой джавакс,качели.Ли логин;
// Конец объявления переменных
}

Что я уже пробовал:

вот файл MysqlConnection

/*
* Чтобы изменить этот заголовок лицензии, выберите заголовки лицензий в свойствах проекта.
* Чтобы изменить этот файл шаблона, выберите инструменты | Шаблоны
* и откройте шаблон в Редакторе.
*/
пакет MyProject;

импорт java.awt.HeadlessException;

импорт java.sql.*;
импорт javax.swing.*;


/**
*
* @автор л. с.
*/
публичный класс MysqlConnection {
Соединение con=null;
публичное статическое соединение ConnectionDB(){
пробовать{
System.out.println("1");
Класс.forName("COM на.с JDBC.для MySQL.Водитель");
System.out.println("1");
Соединение con=DriverManager.getConnection("jdbc:mysql://localhost:3306/airlines?autoReconnect=true&useSSL=false", "корень","Риярд");
JOptionPane.showMessageDialog(null,"подключено к базе данных");
вернуть кон;

}
catch(ClassNotFoundException | SQLException | HeadlessException e){
JOptionPane.showMessageDialog(нуль,е);
возвращать null;

}


}



}
донно, как это исправить.. Пожалуйста, помогите мне...

1 Ответов

Рейтинг:
9

OriginalGriff

Это одна из самых распространенных проблем, которые нам задают, и это также та, на которую мы меньше всего готовы ответить, но вы больше всего готовы ответить сами.

Позвольте мне просто объяснить, что означает ошибка: вы пытались использовать переменную, свойство или возвращаемое значение метода, но оно содержит null - что означает, что в переменной нет экземпляра класса.
Это немного похоже на карман: у вас есть карман в рубашке, который вы используете, чтобы держать ручку. Если вы сунете руку в карман и обнаружите, что там нет ручки, вы не сможете подписать свое имя на листе бумаги - и вы получите очень смешные взгляды, если попытаетесь! Пустой карман дает вам нулевое значение (здесь нет ручки!), поэтому вы не можете сделать ничего, что обычно делали бы, когда вы извлекли свою ручку. Почему он пуст? Вот в чем вопрос - может быть, вы забыли взять ручку, когда уходили из дома сегодня утром, или, возможно, вы оставили ручку в кармане вчерашней рубашки, когда снимали ее вчера вечером.

Мы не можем сказать, потому что нас там не было, и, что еще важнее, мы даже не можем видеть вашу рубашку, не говоря уже о том, что находится в кармане!

Вернемся к компьютерам, и вы каким - то образом сделали то же самое-и мы не можем увидеть ваш код, а тем более запустить его и узнать, что содержит null, когда это не должно быть.
Но вы можете - и Visual Studio поможет вам здесь. Запустите свою программу в отладчике, и когда она выйдет из строя, VS покажет вам строку, в которой она обнаружила проблему. Затем вы можете начать просматривать различные его части, чтобы увидеть, какое значение равно null, и начать просматривать свой код, чтобы узнать, почему. Поэтому поставьте точку останова в начале метода, содержащего строку ошибки, и снова запустите программу с самого начала. На этот раз VS остановится перед ошибкой и позволит вам изучить, что происходит, пройдя через код, глядя на ваши значения.

Но мы не можем этого сделать - у нас нет вашего кода, мы не знаем, как его использовать, если бы он у нас был, у нас нет ваших данных. Так что попробуйте - и посмотрите, сколько информации вы можете узнать!


Member 13986703

Я послал код...

OriginalGriff

И что вы сделали с отладчиком, чтобы выяснить, где проблема?

Member 13986703

Ошибка устранена... Вы были правы, я пытался получить данные из переменной, которая содержит нулевое значение... Спасибо.

OriginalGriff

Всегда пожалуйста!

Помните об отладчике - это действительно ваш лучший друг, когда вы разрабатываете код :D