当前位置: 首页 > 知识库问答 >
问题:

JavaGUI.如何让Jboard重新绘制而不改变现有布局

澹台华翰
2023-03-14

我正在开发一个JAVA Gui。

我有一个Jpanel,我可以向它添加一个Jlabel,然后将它拖到面板内的其他地方。然后我可以创建一个新的Jlabel,以此类推。我无法解决的问题是,当创建新的JLabel并将其添加到面板时,面板调用repaint()。现有标签和新JLabel已对齐。添加新标签时,我希望现有标签保留在其位置。

有什么建议吗?谢谢你!

共有1个答案

米楷
2023-03-14

要将组件放置在随机位置,您需要:

  1. 使用空布局(不推荐)
  2. 使用自定义布局管理器

查看拖动布局。它是一个自定义布局管理器,旨在提供布局管理支持,同时允许您管理每个组件的位置。

 类似资料:
  • 我编写了这段代码,可以在JavaFX画布上绘制。它可以很好地工作,但我不知道如何重新绘制画布(比如在Swing中),以便在新画布上重新开始绘制。这是我的代码,非常感谢你的帮助!马里奥

  • 问题内容: 我在程序开始时,根据数据库中的某些内容,以编程方式在JScrollPane中添加了许多组件(JPanels,JLabels等)。 似乎对于GUI(?)而言,此过程太快了,因此JScrollPane并不总是正确更新,即,即使内部JPanel大于可见区域,滚动条也不可见。 调整窗口大小(JFrame)可以解决此问题,因为我认为Java在调整组件大小时会重新打印它们。 作为测试,我添加了一个

  • 所以我有一个包含JTable的应用程序。JTable位于JScrollPane的内部,JScrollPane绘制在JFrame上。 现在,在我的应用程序中,我打开一个新窗口,向该表中添加一个新行,在我单击一个按钮保存更改后,新窗口关闭。 现在我尝试在新窗口关闭后添加这些行: 这里有什么问题?

  • 我的应用程序有一个处理按键事件的窗口。当用户按键时,我运行一些长任务,在任务期间,我更新窗口上的标签。要在任务仍在运行时更新标签,我调用以下代码。gtk.events_pending():gtk.main_iteration(False) 此更新标签,但问题是它处理所有事件,包括按键。如果用户在任务运行时按下键,调用main_iteration开始处理该任务。我希望它只更新标签,但不处理任何其他事

  • 基本上,从接收一个单击事件,然后我需要多次更改HTML元素,问题是WebView只显示最后一次更改,这意味着渲染不是立即进行的。 问题:如何制作

  • 我想重新绘制我的屏幕。到目前为止,它所做的只是在第一个屏幕上的头部应该在的地方显示一个点。这很好,但是我在代码中写了我想每秒将头部向下移动10个像素。我正在打印头部应该在的位置,在命令提示符中它显示y值确实在增加。但是在我的屏幕上,头部没有移动。 我尝试过使用revalidate方法,尝试扩展canvas类而不是jframe,我尝试过只为paint方法使用不同的类,我尝试过用paintCompon