如何在Java中创建自定义GUI组件? (需要开始提示)

时间:2012-08-05 18:04:37

标签: java swing user-interface components awt

我想用Java创建一个自定义组件。 它就像一个文本区域,但它由网格组成,当你编写时,每个字符都在一个网格单元格中。 我不知道从哪里开始。 我想象一个带有value属性的Cell类和一个带有Cell数组属性的Sheet类,以及一个在写入时指向当前单元格的指针。 编程这样的事情我没有太多问题。我最重要的是如何以图形方式向用户显示它。

有任何建议或参考资料吗?

编辑:我读了你很好的答案,但这并不是我想要的。当我说“由网格组成的文本区域,每个角色进入网格单元格”时,只是对我要做的事情的简化。我会给你进一步的解释:

有一个文字区域。每行由两行(或更多行)(上行和下行)组成。每行包含单元格。在每个单元格中都有一个字符或不同的对象(由字符或图像或其他东西表示)。上排中的Charachters被绑定/跟随相应的下部单元。像这样。

_ _ _ _ _ _ _ _ _ _ _ _ _
_|_|_|_|_|_|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 在构建,设计,编程这样的自定义工具/组件/编辑器时,正确的方法是什么?

2 个答案:

答案 0 :(得分:4)

如何创建自定义JTableHere您可以找到一些信息。

答案 1 :(得分:0)

我发现了一个很好的解决方案,非常适合我的目的: 我将在第一篇文章中解释的方法是创建自定义gui组件的方式是扩展JPanel并实现KeyboardListener(如果需要,还可以实现MouseListener)。我创建了一个Row类和一个Pointer类,其中包含了我的主要组件类。 基于我需要的观察者的图形是通过重载JPanel的paintComponent方法完成的。 显然,为了处理键盘和鼠标操作,您只需要实现KeyboardListener和MouseListener方法(它们都是两个接口)。

如果有人感兴趣并要求进一步解释,我可以提供类图或其他内容。