こんにちは、Jswing
のメソッド内でイベントハンドラを使用しています。イベントがトリガされたときにエラーが発生しました"AWT-EventQueue-0
" java.lang.NullPointerException
。私はGUIクラスを含めて、何が起こっているのかを知ることができます。問題はメソッドsetPlayerNameScreen
とその内部のイベントハンドラで発生します。日食を使用して。スレッド「AWT-EventQueue-0」の例外java.lang.NullPointerException Jswingの問題
通常、私のgooglefuはこれが私の最初の投稿であるため、かなり強力です。私はこのhahaを修正するまで私が上に移動することはできませんので、どんな助けも大いに感謝しています。
編集:実際にコードの内容を説明しているはずです。イベントsetPlayerNameScreen
が前回のイベントから呼び出されたときは、現在のプレイヤー数が最大のプレイヤー数より少ないかどうかをチェックし、そうであれば、プレイヤー名をテキストフィールドに変更して、現在のプレイヤー数にセット1を加えてリセットしますテキストフィールド。
//Main game GUI class
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.math.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class GameGUI extends JFrame
{
private JPanel startPanel;
private JPanel playerNamePanel;
private JTextField txtPlayerNumber;
GameManager gameMngr;
private int currentPlayer;
/**
* Launch the application.
*/
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
GameGUI frame = new GameGUI();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public GameGUI()
{
//Setup our game manager object
GameManager gameMngr = new GameManager();
//int for tracking current active player
int currentPlayer = 1;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
startPanel = new JPanel();
startPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(startPanel);
startPanel.setLayout(null);
JLabel lblTitle = new JLabel("Who Wants To Be a Zillionaire!");
lblTitle.setBounds(5, 5, 424, 14);
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
startPanel.add(lblTitle);
JLabel lblPlayerNumber = new JLabel("Please Enter How Many Players (max 4)");
lblPlayerNumber.setBounds(99, 55, 243, 92);
lblPlayerNumber.setHorizontalAlignment(SwingConstants.CENTER);
startPanel.add(lblPlayerNumber);
txtPlayerNumber = new JTextField();
txtPlayerNumber.setHorizontalAlignment(SwingConstants.CENTER);
txtPlayerNumber.setBounds(116, 153, 200, 20);
startPanel.add(txtPlayerNumber);
txtPlayerNumber.setColumns(10);
//action listener for game start screen button
JButton btnStart = new JButton("Start!");
btnStart.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
//button has been pressed so pass player count and prepare for player names
int playerCount = Integer.valueOf(txtPlayerNumber.getText());
gameMngr.setPlayerCount(playerCount);
//set current panel invisible
startPanel.setEnabled(false);
startPanel.setVisible(false);
setPlayerNameScreen();
}
});
btnStart.setBounds(171, 200, 89, 23);
startPanel.add(btnStart);
}
private void setPlayerNameScreen()
{
//setup the player name setting panel
playerNamePanel = new JPanel();
playerNamePanel.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(playerNamePanel);
playerNamePanel.setLayout(null);
JLabel lblPlayerName = new JLabel("Player 1 Enter Your Name");
lblPlayerName.setHorizontalAlignment(SwingConstants.CENTER);
lblPlayerName.setBounds(87, 11, 259, 14);
playerNamePanel.add(lblPlayerName);
JTextField txtPlayerName = new JTextField();
txtPlayerName.setHorizontalAlignment(SwingConstants.CENTER);
txtPlayerName.setBounds(172, 81, 86, 20);
playerNamePanel.add(txtPlayerName);
txtPlayerName.setColumns(10);
JButton btnPlayerNameConf = new JButton("OK");
btnPlayerNameConf.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(currentPlayer <= gameMngr.getPlayerCount())
{
gameMngr.addPlayer(txtPlayerName.getText(), currentPlayer);
currentPlayer++;
txtPlayerName.setText("");
lblPlayerName.setText("Player " + currentPlayer + " Enter Your Name");
}
}
});
btnPlayerNameConf.setBounds(172, 142, 89, 23);
playerNamePanel.add(btnPlayerNameConf);
}
}
EDIT2:フルエラー
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at GameGUI$3.actionPerformed(GameGUI.java:132)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(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)
完全な例外スタックトレース?また、あなたの質問に適切なタグを付けてください。 – bcsb1001
もっと良いタグはありますか?申し訳ありません。私はあなたがエラーの後に物事の長いリストを意味することを押しつけるのを忘れてしまった...それを今編集する。 – Feetz
GameGUI.javaのどの行が132行目かを指摘できますか? – bcsb1001