如何实现java awt/swing应用程序

发布于 2025-01-05 16:35:42 字数 324 浏览 1 评论 0 原文

我想实现一个 java awt/swing 应用程序,但我对 awt/swing 很陌生。我需要绘制一个类似网格的面板。然后在其上拖放一些对象。之后,对象可以单击并调整大小。我的应用程序应如下所示:

desired output

我可以使用 : 绘制对象,

public void paint(Graphics g){}

但它离我想要的太远去做。

我怎样才能实现这种应用程序?我应该阅读什么并了解什么才能做到这一点?

I want to implement a java awt/swing application but i am new to awt/swing. I need to draw a grid like panel. Than drag and drop some objects on it. Later than objects can be clickable and resizable. My application should look like this:

desired output

I am able to draw object with :

public void paint(Graphics g){}

but its too far away from what i want to do.

How can i implement this kind of application? What should i read and know to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

屋檐 2025-01-12 16:35:42

首先,我一定要遵循 Swing 教程:

然后,我会稍微回顾一下您的方法:我将使用 Swing 组件。

  • 从 JFrame 上的 JPanel 开始。
  • 将 JComponent 添加到网格面板。重写其中的 paintComponent 方法来绘制网格。
  • 在您的对象之上添加其他 JComponent。再次重写 paintComponent 方法来绘制对象的外观。
  • 然后,您可以使用 JComponent 提供的内置功能来允许单击、调整大小等。对于每个事件,您可以重新绘制组件,以考虑在下一次调用 paintComponent< 时需要显示的任何更改。 /code> - 如有必要,调用 repaint 来强制重绘。

First, I'd be sure to follow the Swing tutorials:

Then, I'd revisit your approach a little: I would use Swing components.

  • Start with a JPanel on a JFrame.
  • Add a JComponent to the panel for your grid. Override the paintComponent method there to draw your grid.
  • Add other JComponents on top of that for your objects. Again, override the paintComponent method for those to draw the appearance of your objects.
  • You can then use the built-in functionalities provided by JComponent to allow for clicking, resizing, etc. With each event, you can then redraw the component to account for any changes you need to display in the next call to paintComponent - calling repaint if necessary to force a redraw.
酒浓于脸红 2025-01-12 16:35:42

请不要使用 public void Paint(Graphics g){} 此方法适用于 AWT ComponentsBasicXxxUI,适用于 Swing JComponents void PaintComponent(Graphics g){} 方法rel="nofollow">图形教程

please don't use public void paint(Graphics g){} this method is for AWT Components and BasicXxxUI, for Swing JComponents is there method public void paintComponent(Graphics g){} more in Graphics tutorial

追风人 2025-01-12 16:35:42

您需要从头开始开发一切吗?

对于绘画、点击机制等,你只能使用 PlayN 的 java 部分...

但是如果你想使用 swing 功能...我不确定你是否可以将 playN 与 swing 混合...

但是如果你只依赖于GraphicsAPI awt ....比你需要查找一些东西。

用于绘图的小型图形引擎,具有精确定位功能(简单的碰撞检测),因此您可以在单击时检查每个对象。使用简单的引擎可以轻松管理移动和重绘...

这里真的是好页面

Do you need to develop everything from scratch?

For painting, clicking mechanics etc you can use PlayN only the java part...

But if you want to use the swing capabilities to... I am not sure if you can mix playN with swing...

But if you only relly on the GraphicsAPI awt.... than you will need to look up couple of things.

small graphics enigne for drawing with the pinpoint capability (simple collision detection) so you can check each object on click. Movement and repainting are easely managed with simple engine...

Here is really good page

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文