当前位置: 首页 > 面试题库 >

将JPanel上的组件置于前端(Java)

佟云
2023-03-14
问题内容

在VB中,您可以使用zOrder。在.Net中,它是.SetChildIndex

在您问之前,不,在这种情况下,我不使用布局管理器。如果两个组件相互重叠,那么在显示它们之后如何更改顺序?

由于空间不足,我有一个按钮在另一个组件(标签)的顶部稍有重叠。我将JLabel添加到了按钮 之前
的表单中,并且在加载表单时看起来不错。但是,当用户单击该按钮时,JLabel移至后面,使其大部分消失。有没有办法把它放在前面?我尝试放入label.grabFocus()按钮的ActionListener,但是没有用。


问题答案:

当组件在面板上重叠时,您需要告诉面板,以便可以确保按其正确的ZOrder重新绘制组件:

您可以通过重写isOptimizedDrawingEnabled()JPanel的return方法来做到这一点false



 类似资料:
  • 问题内容: 我有一个swing应用程序,在其中可以在JPanel中显示图像。如果应用程序无法生成图像,我想从JPanel中删除前一个图像,并用JTextField和消息替换它。我可以添加文本字段,但是它是在先前内容的顶部绘制的,该内容本身是JPanel的子类。这是我所拥有的: 如何获得cdPanel完全重绘自身? 问题答案: 您可以简单地尝试致电: 代替

  • 嗨,我正在开发swing应用程序,但我面临一个问题。 当我第一次运行application时,它位于我决定设置组件的适当位置。但问题发生在 我最小化&再次最大化框架窗口自动更改它的位置。 我哪里出错了?

  • 问题内容: 有人可以告诉我为什么组合框不显示吗?我有一个控制器: 和一个观点 由于TestController中的 setLayout(null) ,我看不到comboBox。如果我将 add(cgView.comboBox)添加 到TestContoller()中,则它看起来像这样: 比我能看到的。有人可以告诉为什么吗? 因此,我的解决方案是始终将组件添加到TestController中,或通过

  • 开源组件 1. Angular 1)文件上传:ng-file-upload 、ng-file-upload-shim 2)请求加载动画:angular-loading-bar 3)滚动加载:ngInfiniteScroll 4)表单验证:angular-messages 2. Vue 3. React 4. 动画库 5. 其他 HammerJSMobile手势 1)富文本:summernote 公

  • 问题内容: 我有一个外部面板,在外部面板上有另一个jPanel。 如果我在内部面板上单击鼠标右键,则应该执行外部面板的右键单击操作。如果我确实在内部面板上单击鼠标左键,则应该发生其自身内部面板的点击动作。 是否可以将点击事件从一个面板传递到另一面板? 问题答案: 要解决此问题,您需要解决许多问题。 首先是要了解鼠标事件与创建它的组件有关,尤其是位置信息。单击点是相对于源组件x / y位置的偏移量(

  • 我在同一个JPanel上有一个JButton和一个Point(由飞跃运动控制的运动)。但是,它们与顶部的JButton重叠。 有没有办法让我的点始终在JPanel应用程序窗口中的顶部? 这是一个代码片段: