错误 eventqueue.java_java - 如何修复NetBeans生成的代码中的'线程异常'AWT-EventQueue-0“java.lang.NullPointerException”?...

我有一个带有按钮的表单和分配给该按钮的图标。 此代码由NetBeans生成。 尝试运行应用程序时出现'线程异常'AWT-EventQueue-0“java.lang.NullPointerException”错误。

我创建了一个全新的Gradle项目,其中包含空表单和NetBeans生成的代码。 然后我在表单中添加了一个按钮。 然后将图像添加到项目资源中。 然后将该图像指定为按钮的图标。 清洁和建设。 然后跑。 然后我在NetBeans生成的代码上得到NullPointerException。

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package gradleproject1;

import javax.swing.ImageIcon;

/**

*

* @author x.x

*/

public class Main extends javax.swing.JFrame {

/**

* Creates new form NewJFrame

*/

public Main() {

initComponents();

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

//

private void initComponents() {

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gradleproject1/bucketHelper-icons-Chrome.png"))); // NOI18N

jButton1.setText("jButton1");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addContainerGap(184, Short.MAX_VALUE)

.addComponent(jButton1)

.addGap(119, 119, 119))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(132, 132, 132)

.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(86, Short.MAX_VALUE))

);

pack();

}//

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

//

//

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Main().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

// End of variables declaration

}

这是堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

at java.desktop/javax.swing.ImageIcon.(ImageIcon.java:217)

at gradleproject1.Main.initComponents(Main.java:36)

at gradleproject1.Main.(Main.java:20)

at gradleproject1.Main$1.run(Main.java:90)

at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:389)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

stacktrace中引用的第36行是......

jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gradleproject1/bucketHelper-icons-Chrome.png"))); // NOI18N

表单应显示按钮和按钮中的图标。 这个完全相同的过程适用于Ant项目,但不适用于我的新Gradle项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值