有人能告诉我为什么下面的代码抛出空指针异常吗?异常抛出在行号JTextField.addMouseListener(新的MyMouseAdapter(NumberJTextField));在类InputJFrame1.java.
import java.awt.*;
public class InputJFrame1 extends javax.swing.JFrame
{
private javax.swing.JTextField numberJTextField;
public InputJFrame1()
{
numberJTextField.addMouseListener(new MyMouseAdapter(numberJTextField));
}
private void initComponents()
{
numberJTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(numberJTextField);
}
public static void main(String args[])
{
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(InputJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(InputJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(InputJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(InputJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new InputJFrame1().setVisible(true);
}
});
}
}
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTextField;
public class MyMouseAdapter extends MouseAdapter
{
private JTextField jTextField;
MyMouseAdapter(JTextField jTextField)
{
this.jTextField=jTextField;
}
@Override
public void mouseClicked(MouseEvent e)
{
jTextField.setForeground(Color.red);
}
}
堆栈跟踪:
java线程“AWT-EventQueue-0”中出现异常。javaapplication8上的lang.NullPointerException。InputJFrame1。(InputJFrame1.java:9)位于javaapplication8。InputJFrame1$1。在java上运行(InputJFrame1.java:73)。awt。事件调用事件。java上的调度(InvocationEvent.java:251)。awt。事件队列。java上的dispatchEventImpl(EventQueue.java:727)。awt。事件队列。在java上访问$200(EventQueue.java:103)。awt。事件队列3美元。在java上运行(EventQueue.java:688)。awt。事件队列3美元。在java上运行(EventQueue.java:686)。安全访问控制器。java上的doPrivileged(本机方法)。安全ProtectionDomain$1。java上的doIntersectionPrivilege(ProtectionDomain.java:76)。awt。事件队列。java上的dispatchEvent(EventQueue.java:697)。awt。EventDispatchThread。java上的pumpOneEventForFilters(EventDispatchThread.java:242)。awt。EventDispatchThread。java上的pumpEventsForFilter(EventDispatchThread.java:161)。awt。EventDispatchThread。java上的pumpEventsForHierarchy(EventDispatchThread.java:150)。awt。EventDispatchThread。java上的pumpEvents(EventDispatchThread.java:146)。awt。EventDispatchThread。java上的pumpEvents(EventDispatchThread.java:138)。awt。EventDispatchThread。运行(EventDispatchThread.java:91)
调用构造函数时,尚未分配字段numberJTextField
。在添加MouseListener之前,尝试在构造函数中调用initComponents
方法。
public class InputJFrame1 extends javax.swing.JFrame
{
private javax.swing.JTextField numberJTextField;
public InputJFrame1()
{
initComponents(); //Init components before using textfield
numberJTextField.addMouseListener(new MyMouseAdapter(numberJTextField));
}
private void initComponents()
{
numberJTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(numberJTextField);
}
我想您忘了在默认构造函数上初始化numberJTextField
(和其他组件)
public InputJFrame1()
{
initComponents();
numberJTextField.addMouseListener(new MyMouseAdapter(numberJTextField));
}
不要从构造函数中删除initComponents
。它确保所有组件在使用它们之前都被正确初始化,所以它应该是构造函数的第一行。
public InputJFrame1()
{
initComponents();
numberJTextField.addMouseListener(new MyMouseAdapter(numberJTextField));
}
我有一些旧代码,我试图在VisualStudio代码中编辑。它混合了HTML和C#EG: 它有点像Razor,但不一样。我已经尝试了许多格式C#、Razor、超文本标记语言等。所有这些都以这样或那样的方式破坏代码。 如果我在Visual Studio(2019)中格式化它,那就太好了。有没有办法在Visual Studio Code中使用Visual Studio的格式化程序? 我知道简单的答案是
我试图得到一些代码语法高亮我写的一些文档,我使用HAML和Highlight.js这将适用于像这样的单行Ruby代码(虽然高亮不是很好): 但是如果我尝试在< code>pre和< code>code标记中编写一些CSS,就像这样: 我得到“非法嵌套:纯文本嵌套是非法的。”错误,由于CSS末尾的括号。 有人知道使用HAML在网页上编写代码示例(主要是SASS、Ruby、HAML、Coffeescr
有人能告诉我5美元是什么意思吗?这个例外究竟说明了什么?
我正在编写一个 Java EE 应用程序,使用 Jetty 作为应用程序服务器,以便在开发过程中使用。虽然(重新)部署速度很快,但我希望Java代码更改能够立即反映在正在运行的服务器中,而无需重新启动。(我已经在使用设置来查看对静态服务内容的即时更改)。 我看到过关于使用Maven Jetty插件和设置scanInterval来重新部署web上下文的问题,但这不是我想做的。我的Jetty服务器是从
我们目前在Java8中编译了代码,但我们在Java11 VM上运行它。现在我们也在尝试将代码移动到Java11编译时。想知道在Java8中编译代码与在Java11中编译代码在性能方面是否有任何好处,因为两个编译器都会生成不同的类文件(字节码)?在效率方面,一个与另一个有何不同?
问题内容: 所有! 我在LinkedBlockingQueue中发现了奇怪的代码: 谁能解释为什么我们需要局部变量h?它对GC有什么帮助? 问题答案: 为了更好地了解发生了什么,让我们看看执行代码后列表的样子。首先考虑一个初始列表: 然后指向和指向: 然后指向和指向: 现在,实际上我们知道只有一个指向第一个元素的活动引用,它本身就是(),并且我们还知道GC收集的对象不再具有活动引用,所以当方法结束