我在JFrame中有一个JPanel。我已经注册了一个KeyListener,我想基于它更新JPanel。我遇到的问题是我无法将焦点放在JPanel上,因此我的KeyListener将无法工作。我已经知道KeyListener可以正常工作,因为我用JFrame注册了它并且它工作正常。我的代码现在是这样的:myFrame.setFocusable(false);myPanel.setFocusable(true);myPanel.addKeyListener(myKL);myFrame.add(myPanel);有没有人遇到过这样的问题?在这方面我有什么遗漏吗?P.S.:我在JPanel
我正在制作一个GUI,它在一个大JPanel上方显示三个JToolBar。这些工具栏总体上非常大,所以我使用FlowLayout使它们在到达JFrame边框时换行到下一行。问题是,当它们换行到下一行时,它们会被下面的JPanel隐藏。我希望我可以强制包含工具栏的JPanel增长到足以显示所有工具栏。有没有办法做到这一点?或者有其他方法可以使这些工具栏可见吗? 最佳答案 我以前遇到过这个问题。我发现最好的解决方案是使用FlowLayout的修改版本,它考虑了垂直变化并将它们换行到下一行。这是此类布局的代码。importjava.awt
我有一个带有两个带有图片的标签的JPanel。我需要打印JPanel的这些内容。请帮帮我。我怎样才能只打印这个JPanel的内容,因为我的JFrame上也有不同的组件,但我只需要打印thisJPanel.谢谢。 最佳答案 这是一个打印任何Swing组件的示例。publicvoidprintComponenet(Componentcomponent){PrinterJobpj=PrinterJob.getPrinterJob();pj.setJobName("PrintComponent");pj.setPrintable(newPr
我有一个JPanel带有一个绘制的背景图像和一个布局管理器,其中包含其他较小的图像,所有这些都在一个JFrame中。背景图像非常大,我希望无论在大显示器还是小显示器上都能保持其纵横比。最终,我希望能够将我的LayoutManager及其单元格中的较小图像“粘合”到背景图片上。我四处寻找资源,似乎很多示例都使用BufferedImage但我不是;这会造成问题吗?我将在下面发布我的代码以绘制图像,如果我缺少任何信息,请告诉我。publicclassMonitorPanelextendsJPanel{Imageimg;publicMonitorPanel()throwsMalformedUR
AncestorListener、ComponentListener或HierarchyListener是否有一些规则或好的/坏的体验,使用JPanel监听更改的可见性和JComponents?其中一个比其他的更好或更安全吗?我特别想知道JPanel/JComponent何时以及如何隐藏。注意以下代码包含不正确的Swing规则,例如使用Thread.sleep(int),在这种情况下,我可以打印出正确的Listeners顺序在SwingGUI中importjava.awt.BorderLayout;importjava.awt.CardLayout;importjava.awt.eve
是否有可能在Java中使JPanel跳过绘制其背景,从而除了其上的组件之外是透明的? 最佳答案 setOpaque(false)它将绘制背景传递给它的父级,父级可能会绘制自己的背景。您可以进行屏幕截图,然后使用它来绘制面板的背景。 关于java-使JPanel不绘制其背景(透明),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/54926/
我正在制作一个有趣的物理模拟器,当我试图找出所有这些J之间的区别时,我正在查找图形教程。有人可以详细说明它们,或者提供指向有用来源的链接吗? 最佳答案 这些类是JavaUI设计的常见扩展点。首先,要意识到他们之间不一定有直接的关系,所以试图找到他们之间的关系可能会适得其反。JApplet-一个基类,可让您编写将在浏览器上下文中运行的代码,例如交互式网页。这很酷,但它带来了局限性,这是它在现实世界中表现出色的代价。当您想在网页中拥有自己的UI时,通常会使用JApplet。我一直想知道为什么人们不利用小程序来存储session状态,因此
我正在做一个项目,我正在尝试制作一个绘画程序。到目前为止,我已经使用Netbeans创建了GUI并设置了程序。到目前为止,我可以调用所有必要的协调来在其中绘制,但我对如何在其中实际绘制感到非常困惑。在我的代码接近尾声时,我尝试在面板内绘图失败。谁能解释/展示如何在这样的示例中使用图形?我发现的所有示例都创建了一个类并使用JPanel扩展它,但我不知道我是否可以这样做,因为它是在netbeans中生成的。我需要在我的JFrame内的JPanel内绘图。我不知道把图形类放在哪里。JavaPaintUI类packagejavapaint;importjava.awt.*;importjava
如何获取JPanel所在的JFrame?我目前的解决方案是向面板询问它的父级(等等),直到我找到一个窗口:Containerparent=this;//thisisaJPaneldo{parent=parent.getParent();}while(!(parentinstanceofWindow)&&parent!=null);if(parent!=null){//foundaparentWindow}有没有更优雅的方式,标准库中的方法可能是? 最佳答案 您可以使用SwingUtilities.getWindowAncestor(
我想将JTable添加到布局为null的JPanel中。JPanel包含其他组件。我必须在适当的位置添加JTable。 最佳答案 嵌套/组合布局示例Java教程包含有关使用布局管理器的全面信息。见LayingOutComponentsWithinaContainer了解更多详情。本教程没有很好地介绍布局的一个方面是嵌套布局,将一个布局放在另一个布局中以获得复杂的效果。以下代码将各种组件放入一个框架中,以演示如何使用嵌套布局。所有明确设置的布局都显示为使用它们的面板的标题边框。代码的值得注意的方面是:有一个组合框可在运行时更改PLAF