我正在创建一个简单的数独游戏。因为这是我的第一个“大”,所以我想自己做所有事情(没有我通常用来制作 GUI 的 NetBeans 界面设计器)。因此,对于 GUI,我创建了一个扩展 JApplet 的类,并在 paint() 方法中绘制了一个简单的数独字段。
现在我需要制作 81 个文本字段,每个字段都包含 1 个数字。如何在屏幕上定位它们?另外,我正在考虑制作一个数组,这样我就可以用一个 for 循环来更改整个字段矩阵。
我正在创建一个简单的数独游戏。因为这是我的第一个“大”,所以我想自己做所有事情(没有我通常用来制作 GUI 的 NetBeans 界面设计器)。因此,对于 GUI,我创建了一个扩展 JApplet 的类,并在 paint() 方法中绘制了一个简单的数独字段。
现在我需要制作 81 个文本字段,每个字段都包含 1 个数字。如何在屏幕上定位它们?另外,我正在考虑制作一个数组,这样我就可以用一个 for 循环来更改整个字段矩阵。
建议:
paint
JApplet、JFrame、JDialog 等顶级组件的方法中绘制。paintComponent(...)
扩展 JComponent 的组件(例如 JPanel 或 JComponent 本身)的方法覆盖中执行此操作。init()
方法中,将我的 Sudoku JPanel 添加到 JApplet 的 contentPane 中。这样,如果我想在 JFrame 中显示我的应用程序,我需要做的就是创建另一个小类来创建 JFrame 并将我的 Sudoku JPanel 添加到 JFrame 的 contentPane 中,然后调用pack()
JFrame,然后然后setVisible(true)
。关于如何将 JPanel 添加到 JApplet 的问题,本教程将再次向您展示如何执行此操作。如果您还没有链接到教程的大索引,您会想要这样做:真正的大索引。
一个非常简单的例子是这样的:
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;
public class MyApplet extends JApplet {
@Override
public void init() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
getContentPane().add(new MyJPanel());
}
});
} catch (InterruptedException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}