伙计们,这是一个相当基本的问题。基本上我有这样的代码:publicSuperPanel(){setLayout(newBorderLayout());add(panel1(),BorderLayout.NORTH);add(panel2(),BorderLayout.CENTER);add(panel3(),BorderLayout.SOUTH);}而且一切都很好。问题是我还有另一部分要添加到中心。显然,仅使用add(newPanel(),BorderLayout.CENTER)是行不通的。但是您可以在JPanel中添加JPanel,对吗?所以我做了如下改动:publicSuperPa
我习惯于在其他编程环境中对窗口类进行子类化,但在java教程中我通常会看到类似的东西JPanelp=newJPanel();p.setLayout(newBoxLayout(p,BoxLayout.PAGE_AXIS));p.add(aComponent);p.add(anotherComponent);那么Java中关于子类化顶级容器类的约定是什么? 最佳答案 使用与所有Java类相同的原则。如果您正在修改或扩展行为或功能,那么一定要扩展JPanel或JFrame。诀窍是仔细考虑并决定你是否真的要添加任何东西。在大多数情况下,当我
我想知道是否有任何方法可以将ActionListener添加到JPanel中?我可以将它们添加到JButtons,但JPanel似乎没有这样的方法。基本上,我在具有网格布局的JFrame中有一堆JPanel,我想知道是否有任何方法可以知道用户何时单击其中一个。非常感谢任何帮助! 最佳答案 Action监听器用于监听Action事件。当使用鼠标按下和释放按钮时(而不是单击时),或者使用键盘(空格键、助记键、键盘快捷键等)按下按钮时,按钮会触发Action事件。这是一个高级别的Activity。鼠标点击是一个更底层的事件,由MouseL
在我的问题中,我有一个不透明的JPanel和另一个位于第一个JPanel上的半透明(半透明)JPanel。当我在顶部的JPanel上添加单选按钮时。问题是每次我在每个单选按钮的标签区域输入鼠标时(以及每次我将鼠标从标签上移开时),它会变得越来越暗。packagetrial;importjava.awt.Color;importjavax.swing.ButtonGroup;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JRadioButton;publicclassTest{publicstati
我需要能够以编程方式更改我的Swing应用程序中所有组件的字体大小。我无法以通常的方式(使用UIManager或putClientProperty)执行此操作,因为我使用的是Nimbus外观和感觉,因此我使用以下方法分别增加我的应用程序中每个组件的字体大小...privatevoidenlargeFont(java.awt.Componentc,floatfactor){c.setFont(c.getFont().deriveFont(c.getFont().getSize()*factor));}我遇到的问题是,我在我的JPanel上使用了TitledBorder,并且(可预见地)将
我想在我的Java应用程序中的JPanel上绘制经过缩放、旋转、着色和带有alpha层的SVG图像。我怎样才能做到这一点?这些图像中可能有多个重叠。我真的不知道如何在Java中使用SVG图像所以请从头开始解释,不仅仅是渲染过程:)提前致谢! 最佳答案 您需要将SVG图像转换为JPanel可以显示的类型——我假设您已经知道如何使用BufferedImage来显示,例如一个PNG,并且您不需要编辑SVG,只需显示它即可。这里的关键是Java本身不支持SVG。你必须使用像batik这样的库加载图像并将其转换为可显示格式。我从http://
我正在寻找有关如何在JPanel中绘制文本的最基本说明。我知道那里有十亿个教程,但没有一个是点击我的,我有一些具体的问题可能会帮助其他感到困惑的人。作为一个设置(一个测试应用程序),我有一个类,它有一个JLabel、一个JTextField、一个JButton和一个JPanel。应用程序从外部文件中读取整数,并应在按下JButton时在面板中显示它们的平均值。我整理了所有底层编程(即,按钮响应并将平均值打印到命令行)但我似乎无法整理出如何将平均值打印到面板。我想我最大的问题是如何将paint()或paintComponet()方法与其余代码结合起来。它应该是它自己的类(class)吗?
我想在应用程序处理时发出加载消息,所以我在JTree上使用了JPanel。但是当用户点击JPanel时,JTree将被选中并且JPanel将返回到后面。隐藏JPanel后,它再也不会显示了。我不知道为什么,但它似乎永远不会在JTree前面。我需要一种方法将JPanel放在所有内容的前面。我该怎么做?编辑:另外我必须提到我不需要JDialog。我想在任何元素顶部使用JPanel来显示加载消息,直到进程完成。 最佳答案 所以这里你至少有两个解决方案。要么按照@Geoff和@sthupahsmaht的建议去做。顺便说一句,也可以使用JOp
我有一个扩展JPanel的类:publicclassButtonPanelextendsJPanel{privatelabel;publicButtonPanel(){label=newJLabel("waitingforclick");add(label);}publicvoidsetButtonText(){label.setText("justclicked");}}我有几个该类的实例被添加到JFrame中。我想创建一个MouseAdapter类实例,然后将它们作为鼠标监听器添加到我的JFrame上的所有ButtonPanel组件。我是说:ButtonPanelbutt1=new
我的应用程序顶部有一个栏,在JLabel的两侧有许多按钮。按钮的可见性取决于用户正在执行的当前任务,并且按钮的文本之一也可能会根据当前状态发生变化。我想要做的是将一些按钮固定在JPanel的左侧,JLabel的中心位于JPanel的正中央,其余按钮位于JPanel的右侧。到目前为止,我已经设法使用各种方法和布局管理器将按钮固定在左侧和右侧,但我无法使JLabel的中心位于JPanel的中心。我设法得到的最好的是标签离中心足够近,但随着按钮设置为可见或它们的文本发生变化,它会四处移动。是否可以强制JLabel保持死点?注意:按钮永远不会变大到足以与JLabel的任一边缘相交,所以这不是问