草庐IT

java - JComponent 不绘制到 JPanel

我有一个扩展JComponent的自定义组件,它覆盖了paintComponent(Graphicsg)方法,但是当我尝试将它添加到我的JPanel时,它不起作用,没有绘制任何东西。这是我的代码:publicclassSimpleComponentextendsJComponent{intx,y,width,height;publicSimpleComponent(intx,inty,intwidth,intheight){this.x=x;this.y=y;}@OverridepublicvoidpaintComponent(Graphicsg){Graphics2Dg2=(Grap

java - 更改 JPanel 及其所有元素的字体大小

我正在尝试创建一个Swing面板,其元素的字体大小与swing应用程序的其余部分不同。最初,对几个组件使用setFont没有造成任何问题。现在我有几个组件(及其所有子组件),所以这个解决方案不切实际。我搜索过有关更改swing组件的默认UI属性的信息。我发现主要是使用UIManager,它会全局更改属性。这对我不起作用,因为我想保留所有其他面板的当前字体设置。目前(因为我不喜欢不先尝试就发帖),我有一个这样的算法:publicstaticvoidfixFont(Containerc){c.setFont(c.getFont().deriveFont(10.0f));Component[

java - 如何在 JPanel 中使用 paint 方法

我正在用Java开发老虎机,到目前为止我创建了一个按钮,它会随机生成两张图片。我的代码可以编译,但是当我运行它时,我放入paint方法中的所有内容都没有显示出来。我有什么想念的吗?感谢您的帮助,这是我的一些代码。publicvoidpaint(Graphicsg){super.paintComponents(g);g.drawString("Int1is"+int1,30,30);g.drawString("Int2is"+int2,30,80);switch(int1){case0:g.setColor(Color.white);g.fillRect(300,300,300,500)

java - JPanel 占用的空间超出了它的需要。我怎样才能缩小它?

更新:我因发布无效代码而受到合理的批评。我已经牢记这一点,并用一个完整的工作示例更新了这篇文章。我也相应地更新了描述:我有一个非常简单的javaswingGUI,其组件占用的垂直(Y)空间看起来与最大Y范围组件所用的空间数量相等,但完全没有必要。我曾尝试使用preferredSize提示缩小那些不需要那么多垂直空间的组件,但无济于事。基本布局很简单:有一个主窗口和三个垂直面板。布局是一个简单的GridLayout(我更愿意保持这种方式,除非有人告诉我我需要的东西不能用GridLayout完成)。所有三个面板似乎都占据了相同数量的垂直空间,即使在slider的情况下,这是巨大的空间浪费。

java - JPanel 上边距为 0

有什么方法可以为JPanel添加0边距/填充以使其适合它假设的整个屏幕?这就是我要说的:(看到面板上方的小空间了吗?为什么它不也覆盖它?)这是它的设置方式:labelStatus=newJLabel("\n\nSorry,theservercrashed!");labelStatus.setForeground(Color.WHITE.brighter());statusPanel=newJPanel();statusPanel.setBackground(Color.RED.darker());statusPanel.add(labelStatus);statusPanel.setP

java - 将 JComponents 与 JPanel 的左侧和右侧对齐

我有一个包含两个JComponent的JPanel,比如说两个JButton,btnLeft和btnRight。我希望这两个按钮水平对齐,我希望btnLeft位于JPanel的左侧,btnRight位于JPanel的右侧,中间留有任何空间。我知道我可以使用BoxLayout通过添加一个水平支柱来做到这一点我必须在其中指定空间量,但是必须有一种更简单的方法而不必指定中间的剩余空间是。我该怎么做? 最佳答案 听起来horizo​​ntalGlue就是您要找的东西:JComponentcomp=newJPanel();comp.setLa

java - 将背景图像添加到 JPanel

我正在使用Java构建棋盘游戏。对于游戏板本身,我试图将板的图像放置为整个JPanel的背景,它填充了JFrame。我找到了一种方法来做到这一点,但只有在本地存储文件的情况下,它还需要能够从GUI所在的包中获取图像。packageGui;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;importjavax.swing.JPanel;//Proofofconceptfors

java - 设置JPanel的大小

我正在编写一个使用swing组件的应用程序,我注意到一件事我需要解释一下我有这些类(class):我在其上实例化gui维度的枚举publicenumGuiDimension{WIDTH(700),HEIGHT(400);privatefinalintvalue;privateGuiDimension(intvalue){this.value=value;}publicintgetValue(){returnvalue;}}启动应用程序的此类privateGamePanelgamePanel=newGamePanel();publicstaticvoidmain(String[]args

java - 在现有的 JPanels 上绘制 JLayeredPane

我正在开发一款国际象棋游戏。我想让板容器利用GridLayout来显示8x8的JPanel网格。(这将使诸如突出显示所选方block和有效移动等功能变得更加容易。)然后我想在该层上添加棋子,以便可以拖放它们。我最初通过在单独的方形JPanel中绘制来显示这些片段,但我认为稍后尝试拖放它们时会出现问题。从那以后,我一直在尝试使用JLayeredPane作为主容器,但遇到了几个问题。一个是,一旦我为JLayeredPane指定了GridLayout,无论我使用哪个Integer来指定要将JLabel或其他类型的图像添加到的图层,这些片段都会添加到网格中,从而设置它们的位置并扭曲了整个棋盘。

java - 如何在 JPanel 及其子项上设置工具提示?

我有一个包含JButton和其他一些东西的JPanel,我希望整个面板都有一个工具提示。当我在JPanel上调用setToolTipText时,工具提示仅出现在JPanel内的空白区域。有没有办法在JPanel上设置工具提示,使其适用于JPanel及其子项,或者我是否也坚持对所有子项调用setToolTipText? 最佳答案 创建递归方法:publicstaticvoidsetToolTipRecursively(JComponentc,Stringtext){c.setToolTipText(text);for(Componen