0
Javaの初心者として、私はwindowsbuilder(eclipseプラグイン)の助けを借りてウィンドウアプリケーション "Game"を作成しようとしています。Java - extern関数でJLabel Frontcolorを変更する
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Leiterspiel.allblack(Leiterspiel.java:81)
at Leiterspiel$2.mouseClicked(Leiterspiel.java:234)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Leiterspiel.allblack(Leiterspiel.java:81)
at Leiterspiel$2.mouseClicked(Leiterspiel.java:234)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
私はなりたい:私は(allblack())はextern関数内でラベルを変更しようとして は今、コンソールは、私は特定のボタンを(画面が正しく表示されます)を押すと、以下のエラーが出ています"allblack()"と同じコードが "inizialize()"で動作するので誰でも私に説明することができればすばらしい。 おかげ
[Pre-sampled import]
public void allblack()
{
l1.setForeground(Color.black);
l2.setForeground(Color.black);
}
public void initialize() {
frmDasLeiterspiel = new JFrame();
frmDasLeiterspiel.setResizable(false);
frmDasLeiterspiel.setTitle("Das Leiterspiel");
frmDasLeiterspiel.setBounds(100, 100, 420, 420);
frmDasLeiterspiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmDasLeiterspiel.getContentPane().setLayout(null);
JLabel l1 = new JLabel("1");
l1.setBackground(Color.LIGHT_GRAY);
l1.setBounds(340, 190, 50, 50);
l1.setHorizontalAlignment(SwingConstants.CENTER);
frmDasLeiterspiel.getContentPane().add(l1, BorderLayout.CENTER);
JLabel l2 = new JLabel("2");
l2.setBackground(Color.LIGHT_GRAY);
l2.setHorizontalAlignment(SwingConstants.CENTER);
l2.setBounds(278, 190, 50, 50);
frmDasLeiterspiel.getContentPane().add(l2);
[....]
JButton btnNewButton = new JButton("Roll the dice!");
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
allblack();
}
});
btnNewButton.setBounds(12, 294, 378, 25);
frmDasLeiterspiel.getContentPane().add(btnNewButton);
[...]
}
作成しているラベルは 'initialize'メソッドのローカルです。 JLabel l1 = new JLabel( "1"); 'l1 = new JLabel(" 1 ");および' JLabel l2 = new JLabel( "2"); 'l2 = new JLabel(" 2 " ");'実際のラベルを初期化します。 – Berger