简单的tic-tac-toe分为两类。我知道使用URL,但我想让它正常工作。这是到目前为止的节目。我大部分是从youtube教程中获得的,但现在错误消息
异常线程"main"java.lang.NullPointerExc0019
在爪哇。桌面/javax。摆动图像图标。(来源不明)
在XOButton。XOButton.java:17)
在TicTacToe。TicTacToe.java:24)
在提克塔托。main(TicTacToe.java:13)
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
public class TicTacToe extends JFrame{
JPanel p = new JPanel();
XOButton buttons[] = new XOButton [9];
public static void main(String[] args) {
new TicTacToe();
}
public TicTacToe() {
super ("TicTacToe");
setSize(400,400);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
p.setLayout(new GridLayout(3,3));
for (int i=0; i<9; i++) {
buttons[i] = new XOButton();
p.add(buttons[i]);
}
add(p);
setVisible(true);
}
}
下一步:
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class XOButton extends JButton implements ActionListener{
ImageIcon X,O;
byte value = 0;
/*
0:nothing
1:X
2:O
*/
public XOButton() {
X = new ImageIcon(this.getClass().getResource("C:\\Users\\mattt\\Pictures\\X.PNG"));
O = new ImageIcon(this.getClass().getResource("C:\\Users\\mattt\\Pictures\\0.PNG"));
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
value++;
value %= 3;
switch(value) {
case 0:
setIcon(null);
break;
case 1:
setIcon(X);
case 2:
setIcon(O);
}
}
}
您的代码中存在一些问题。
1)为了防止nullpointerExcure,你必须将图像添加到同一个包中。
public XOButton() {
X = new ImageIcon(this.getClass().getResource("X.PNG"));
O = new ImageIcon(this.getClass().getResource("0.PNG"));
this.addActionListener(this);
}
2) 在switch case语句中,case1和case2没有break语句。
public void actionPerformed(ActionEvent e) {
value++;
value %= 3;
switch(value) {
case 0:
setIcon(null);
break;
case 1:
setIcon(X);
break;
case 2:
setIcon(O);
break;
default:
break;
}
}
问题内容: 我正在为当前应用程序开发软件安装程序。需要将其安装到系统硬盘上。我应该如何检测系统驱动器并返回来自Python的字母? win32扩展会有用吗?预装Python的os模块怎么样? 问题答案: 这是如何在Win32平台上返回系统驱动器的盘符: 上面的代码段返回系统驱动器号。就我而言(大多数情况下是在Windows上)C:
问题内容: 对于一个我正在从事的项目。我需要在文件系统上寻找可执行文件。对于UNIX派生类,我假定用户将文件包含在强大的$ PATH变量中,但是Windows上没有这样的东西。 我可以放心地假设该文件在文件系统中的深度最多为2个级别,但是我不知道它将是什么驱动器。我必须尝试所有驱动器,但无法弄清楚如何列出所有可用的驱动器(已为其分配了字母)。 有什么帮助吗? 编辑: 我知道有%PATH%变量,但是
问题内容: 我正在用Java编写数据库验证工具,并具有首选项屏幕,以便用户可以定义其数据库连接。该工具至少应能够应付DB2,Oracle,Postgresql和Mysql。 我真正想要的是能够向用户提供他们已安装的jdbc驱动程序列表,作为此过程的一部分。 任何人都可以提供用于发现已安装的JDBC驱动程序的代码段吗? 问题答案: 到目前为止,您需要扫描整个类路径(和子文件夹)以查找实现类的类。这样
我是斯坦纳树问题领域的初学者,我需要确定我的问题的名称,如果存在:给定无向、无权重、根图和一些顶点(模板节点)。我想构建树,其中所有的终端节点都是叶子,具有最小数量的斯坦纳顶点。有谁能为我找出这个问题的类(名称)以便阅读更多关于这个的信息。谢谢你们所有人
问题内容: 我有这个小程序,它需要在他们的“我的文档”文件夹中创建一个小.txt文件。这是我的代码: 问题是,如果其他人使用它,如何将其更改为他们的帐户名? 问题答案: 使用,请参阅http://docs.python.org/library/os.path.html 例如 根据文档,这在Unix和Windows上均可使用。 编辑:由于Sven的评论,正斜杠。
我试图给我的界面一个新的功能,但我遇到了一些障碍。当鼠标移动时,我想放大JLabel上的图像。以下是我的JLabels的外观: 代码一直在继续。我想创建一个函数并将其添加到mouseListener中,这样所有的行为都将相同。我想实现这一点: 但是我不知道我可以使用这个,因为java说我需要图像来创建我的放大图像图标 如何从代码中检索用于打包JLabel的图像。任何帮助都将不胜感激。