草庐IT

java - 在 JPanel 上绘画与在 JComponent 上绘画有什么好处?

所以在最近的回答中,有人评论了这个(关于绘画):"Thisisprobablysomekindofillnessof90%ofSwingProgrammers:Whentheymaketheirowncomponent,theyalwaysextendJPanelinsteadofJComponent.Why?"我对编程还很陌生,所以我认为现在称自己为Swing程序员还为时过早,因为我还没有找到自己的定位。但是重写JPanel正是我被教导的方式。因此,我着手寻找评论者提出的“为什么?”问题的答案。这些是我找到的一些答案。Backgroundpaintingismaindifferenc

java - 我如何将 JPanel 分成 70% 30%

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Swing:HowdoIsetacomponentheighttothecontainer'sheight?我如何像下面显示的图片那样划分JPanel有2个面板panel1和panel2panel1应占70%,panel2应占30%,或者panel1应大于panel2...我已经尝试过Gridlayout、BorderLayout但它不起作用。任何帮助将不胜感激。publicclassTestApplicationextendsJApplet{privatestaticfinallongserialVersi

java - 如何删除仍然使用流布局的 JPanel 之间的填充?

这是我有疑问的Java应用程序GUI部分。这个GUI包含一个蓝色的JPanel(容器),默认FlowLayout作为LayoutManager,它包含一个包含两个JPanel的Box(以删除水平间距,或者我可以使用setHgaps为零而不是一个Box)它每个都包含一个JLabel。这是我创建该部分GUI的代码。privatevoidsetupSouth(){finalJPanelsouthPanel=newJPanel();southPanel.setBackground(Color.BLUE);finalJPanelinnerPanel1=newJPanel();innerPanel

java - IntelliJ gui creator : JPanel gives runtime null pointer exception upon adding any component

我在使用IntelliJ的javagui创建时遇到问题。不幸的是,面板背后的大部分代码都隐藏在guicreator中,我无法编辑。我使用ItelliJGridLayoutManager创建了一个空白的JPanel“questionPanel”。当我尝试向该面板添加任何内容时,即使面板绝对不为空,我也会收到空指针异常。我还尝试将JTextField添加到布局中(出于好奇),但这也无济于事。JTextField出现了,但我仍然无法从代码中添加任何内容。当我将布局管理器更改为其他任何东西(GridBagLayout、FormLayout、BorderLayout等)时,我不再收到错误,但什么

为什么布局样式应用于我的所有jpanels?

我给自己一个关于重学习爪哇的速成课程。我正在编写一个非常简单的程序,当您单击随机面板时,它可以简单地更改按钮的位置。没有真正的问题,我几乎完成了我想要的程序。但是,我想知道为什么当我将布局样式应用于第一个面板(ButtonPanel1)时,它会自动应用于每个面板?/**Tochangethislicenseheader,chooseLicenseHeadersinProjectProperties.*Tochangethistemplatefile,chooseTools|Templates*andopenthetemplateintheeditor.*/packagebuttonswitch

添加一个在Jsplitpane和Jpanel之间分配的JSCrollpane?

我只是想插入滚动舞,但我不会得到它。我有一个由面板定义的3个区域。中间的左侧区域被拆分盆地分开。中间区域被滚动板分开。从上到下清晰地垂直清晰。希望您能为我提供帮助,因为我目前真的很沮丧,没有解决方案的答案。这是一张显示我要创建的目标的图片。在此方法中,我们定义拆分并将其返回到Jframe。publicJSplitPanedefineSplit(){JPanelleftPanel=leftArea();JPanelcenterPanel=middleArea();JPanelrightPanel=rightArea();JSplitPanesplitPane1=newJSplitPane(JSp

java - 将 JPanel 上的组件置于前面 (Java)

在VB中,您可以使用zOrder。在.Net中,它是.SetChildIndex。在你问之前,不,在这种情况下我没有使用布局管理器。如果两个组件彼此重叠,如何在它们显示后更改顺序?由于空间不足,我有一个按钮与另一个组件(标签)的顶部略有重叠。我在按钮之前将JLabel添加到表单中,当表单加载时,它看起来很好。但是,当用户单击该按钮时,JLabel会退到后面,使它的一部分消失。有没有办法让它保持在前面?我试过将label.grabFocus()放在按钮的ActionListener中,但它不起作用。 最佳答案 默认情况下,Swing假

java - JTextFields 在 JPanel 上的 Activity 绘图之上,线程问题

有没有人尝试过使用Swing构建适当的多缓冲呈现环境可以在其上添加Swing用户界面元素?在这种情况下,我在背景上绘制了一个动画红色矩形。背景不需要每一帧都更新,所以我将它渲染到BufferedImage上并只重绘清除矩形先前位置所需的部分。请参阅下面的完整代码,这扩展了@trashgod在上一个线程中给出的示例,here.到目前为止一切顺利;动画流畅,CPU使用率低,无闪烁。然后我将一个JTextField添加到Jpanel(通过单击屏幕上的任意位置),并通过在文本框内单击来聚焦它。每次光标闪烁时,清除矩形的先前位置现在都会失败,请参见下图。我很好奇是否有人知道为什么会发生这种情况(

java - 将 JLayeredPane 添加到 JPanel

我正在尝试将JLayeredPane添加到JPanel,然后将图像(JLabel图标)和按钮添加到JLayeredPane,但均未显示。我已经在没有按钮和分层Pane的情况下测试了图像,所以我知道它可以工作。这是我正在使用的一些代码。有什么我遗漏或做错了什么吗?publicclassMyClassextendsJPanel{privateJLayeredPanelayeredPane;privateJLabelimageContainer=newJLabel();privateJButtoninfo=newJButton("i");MyClass(ImageIconimage){sup

java - 使 JPanel 手动调整大小

我有一个JFrame和BorderLayout作为布局管理器。在南边,我有一个JPanel,我希望这个JPanel的大小可以由用户调整,即用户可以点击边框并将其向上拖动以使其变大。你有什么办法知道我可以做到这一点吗? 最佳答案 为了使框架中的面板可以单独调整大小,您需要将它们添加到JSplitPane上.不要将它放在框架的南部,而是将JSplitPane放在中心。拆分Pane将使拆分中的底部面板看起来像在南方,而拆分中的顶部面板将位于框架的中心。确保使用setOrientation(JSplitPane.VERTICAL_SPLIT