gpt4 book ai didi

java.lang.NumberFormatException : For input string: "null" while trying to send an email using netbeans

转载 作者:行者123 更新时间:2023-12-02 06:03:15 25 4
gpt4 key购买 nike

我正在尝试在 netbeans 中创建一个电子邮件客户端来发送电子邮件,但我在代码中遇到了 numberformatexception。这是我的代码(共有三个类):

EmailClient.java

package sendemail;

public class EmailClient extends javax.swing.JFrame {

SendMail sm=new SendMail();
Settings set=new Settings();
public EmailClient() {
initComponents();
}


@SuppressWarnings("unchecked")
+Generated code

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
sm.setVisible(true);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
set.setVisible(true);
}

public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new EmailClient().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenuBar jMenuBar2;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}

Settings.java

    package sendemail;
import javax.swing.*;
import java.awt.*;

public class Settings extends javax.swing.JFrame {

public String uname;
public String pass;
public String smtpserver;
public String port;
/**
* Creates new form Settings
*/
public Settings() {
initComponents();
}

public String getUname() {
return uname;
}

public String getPass() {
return pass;
}

public String getSmtpserver() {
return smtpserver;
}

public String getPort() {
return port;
}



@SuppressWarnings("unchecked")
+Generated Code

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
uname=jTextField1.getText().toString();
pass=jPasswordField1.getPassword().toString();

smtpserver=jComboBox1.getSelectedItem().toString();
port=jComboBox2.getSelectedItem().toString();

if(uname.equals("") || pass.equals("") || smtpserver.equals("") || port.equals("") )
{
JOptionPane.showMessageDialog(this,"All Fields are mandatory");
}
else
{
setVisible(false);
}

}

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Settings().setVisible(false);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JComboBox jComboBox2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JTextField jTextField1;
// End of variables declaration

}

SendMail.Java

package sendemail;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;
import java.awt.*;
import javax.mail.*;
import javax.mail.MessagingException;


public class SendMail extends javax.swing.JFrame {

Settings setfrm=new Settings();
String subject;
String from;

public SendMail() {
initComponents();
}


@SuppressWarnings("unchecked")
+Generated Code

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
final String user=setfrm.getUname();
final String password=setfrm.getPass();
String portnum=setfrm.getPort();
String smtpname=setfrm.getSmtpserver();
String to=jTextField1.getText();
subject=jTextField2.getText();
Properties properties=new Properties();
properties.put("mail.smtp.host",smtpname.toString());
properties.put("mail.smtp.socketFactory.port",portnum.toString());
properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.port",portnum.toString());
properties.put("mail.smtp.auth","true");
Session session=Session.getDefaultInstance(properties,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(user,password);

}

}

);
MimeMessage message=new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(jTextField1.getText().toString()));
message.setSubject(subject);
message.setText(jTextArea1.getText());
Transport.send(message);
JOptionPane.showMessageDialog(null,"message sent");
}
catch(MessagingException mex)
{
JOptionPane.showMessageDialog(null,mex);
}
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SendMail().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration

}

错误:

java.lang.NumberFormatException: For input string: "null"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:145)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:93)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at sendemail.SendMail.jButton1ActionPerformed(SendMail.java:177)
at sendemail.SendMail.access$100(SendMail.java:25)
at sendemail.SendMail$2.actionPerformed(SendMail.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3311)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
BUILD STOPPED (total time: 1 minute 2 seconds)

我尝试使用 SendMail.java 发送电子邮件,而发件人的电子邮件和密码是从 Settings.java 输入的,而 EmailClient.java 仅用于在单击按钮时将 JFrames 可见性设置为 true 或 false .

最佳答案

java.lang.NumberFormatException: For input string: “null”

据我所知,当您尝试发送电子邮件时,唯一可以解析为数字的字段(并给您这样的异常(exception))是端口号。话虽如此,您可以在此处从 Settings 类的组合框中选择端口号:

port = jComboBox2.getSelectedItem().toString();

并在此处的 SendEmail 类的属性中设置此端口号:

String portnum = setfrm.getPort();
...
Properties properties = new Properties();
...
properties.put("mail.smtp.port", portnum.toString());

在您的代码中,您没有向组合框添加任何对象。至少你没有显示该部分,但你必须在某个地方这样做,否则你会在这里得到一个 NullPointerException :

port = jComboBox2.getSelectedItem().toString();

但是,port 可能会保存 "null" 字符串,因此以下调用会引发异常:

Integer.parseInt("null"); // called somewhere within com.sun.mail.smtp.SMTPTransport.protocolConnect() method

关于java.lang.NumberFormatException : For input string: "null" while trying to send an email using netbeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22505379/

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