【发布时间】:2012-08-02 20:44:38
【问题描述】:
我想用 Java 创建一个自定义组件。 它就像一个文本区域,但它是由网格组成的,当你写的时候,每个字符都在一个网格单元格中。 我不知道从哪里开始。 我想象一个具有 value 属性的 Cell 类和一个具有 Cell 数组属性的 Sheet 类和一个在写入时指向当前单元格的指针。 我在编写这样的事情时没有太多问题。我最重要的是如何以图形方式向用户展示它。
有什么建议或参考吗?
编辑:我阅读了您出色的答案,但这并不是我想要的。当我说“由网格组成的文本区域,并且每个字符都进入网格单元格”时,这只是对我将要做的事情的简化。我会给你进一步的解释:
有一个文本区域。每行由两(或更多)行(上排和下排)组成。每行都包含单元格。在每个单元格中都有一个字符或不同的对象(由字符或图像或其他东西表示)。上排的字符绑定/跟随相应的下单元格。像这样。
_ _ _ _ _ _ _ _ _ _ _ _ _
_|_|_|_|_|_|X|_|_|_|_|_|_|
H|E|L|L|O|_|W|O|R|L|D|,|_|
_ _ _ _ _ _ _ _ _ _ _ _ _
_|_|_|_|Y|_|_|_|_|_|_|_|_|
H|O|W|_|A|R|E|_|Y|O|U|?|_|
_ _ _ _ _ _ _ _ _ _ _ _ _
_|_|_|_|_|_|_|_|_|_|_|_|_|
_|_|_|_|_|_|_|_|_|_|_|_|_|
您可以看到 X 绑定到 WORLD 的下部 W,而 Y 绑定到 ARE 的下部 A。我希望现在它更清楚一点:-p 构建、设计和编程此类自定义工具/组件/编辑器的正确方法是什么?
【问题讨论】:
-
Swing、AWT、SWT 还是其他?我们需要一些上下文。您还阅读过您使用的任何 GUI 库的教程吗?
-
我正在使用 swing 和 awt。我是一个真正的 java 初学者(但在编程方面不是那么初学者)。
-
我认为你最好的办法是首先通过阅读Swing tutorials 的大部分内容来学习你的工具集。
-
所以你的建议是适当使用一些摆动组件,而不是自己创建一个。我最初的想法是扩展一个 JPanel,然后在上面绘图,但我真的无法想象如何让用户在其中输入文本并显示它。
-
使用具有固定宽度的
JTextAreaFont。
标签: java swing user-interface components awt