如何为 JApplet 制作布局

2024-04-12

我正在创建一个简单的数独游戏。因为这是我的第一个“大”任务,所以我想自己完成所有事情(不需要我通常用来制作 GUI 的 NetBeans 界面设计器)。因此,对于 GUI,我创建了一个扩展 JApplet 的类,并在 Paint() 方法中绘制了一个简单的数独字段。

现在我需要创建 81 个文本字段,每个字段包含 1 个数字。我如何将它们放置在屏幕上?另外,我正在考虑制作一个数组,这样我就可以用一个 for 循环来更改字段的整个矩阵。


建议:

  • 切勿直接在paint顶级组件(例如 JApplet、JFrame、JDialog 等)的方法。
  • 如果您需要进行自定义绘图,请在paintComponent(...)扩展 JComponent 的组件(例如 JPanel 或 JComponent 本身)的方法重写。
  • 您的问题并不真正需要自定义绘画,至少现在还不需要,并且可以通过其他方式更好、更简单地解决。
  • 使用 JLabels、JTextFields 等组件...并使用 Swing 布局管理器(上面提到的其他方法)定位它们。您可以在这里找到有关如何使用它的教程:在容器中布置组件 http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html
  • 首先要关注的布局包括数独“单元格”的 GridLayout 和整个 GUI 的 BorderLayout。避免使用 GridBagLayout 和 GroupLayout,至少在开始时是这样。
  • 请记住,您可以通过嵌套 JPanel 创建复杂的应用程序,每个 JPanel 使用一个简单的布局管理器。
  • “绘制”网格线的一个简单方法是将使用 GridLayout 并将 JTextFields 保存为 Color.BLACK 的 JPanel 的背景颜色设置为 Color.BLACK,并确保为 GridBagLayout 提供一个小的垂直和水平间隙,以便黑色显示出来。上面列出的教程将向您展示如何执行此操作。
  • 如果这是我的应用程序,我会调整我的 GUI 来创建一个保存该应用程序的 JPanel。然后,如果我需要在 JApplet 中显示它,我将创建一个非常小的应用程序,它是 JApplet 的子类,然后在init()方法,将我的 Sudoku JPanel 添加到 JApplet 的 contentPane 中。这样,如果我想在 JFrame 中显示我的应用程序,我需要做的就是创建另一个小类来创建 JFrame 并将我的 Sudoku JPanel 添加到 JFrame 的 contentPane 中,然后调用pack()在 JFrame 上,然后setVisible(true).

关于如何将 JPanel 添加到 JApplet 的问题,教程将再次向您展示如何执行此操作。如果您还没有链接到本教程的大索引,您将需要这样做:真正的大指数 http://download.oracle.com/javase/tutorial/reallybigindex.html.

一个非常简单的例子如下:

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();
      }
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 JApplet 制作布局 的相关文章

随机推荐