我在JPanel中动态添加和删除组件。添加和删除功能工作正常,但当我删除组件时,它会删除最后一个组件而不是要删除的组件。我该如何解决这个问题? 最佳答案 有趣的是,我遇到了同样的问题,我很惊讶人们支持另一个答案,因为他显然是在询问动态创建的组件,而不是已经在变量名下创建的组件可获得的,而不是匿名创建的对象。答案很简单。采用getComponents()循环访问添加到JPanel的组件数组。使用instanceof查找您要删除的组件类型例如。在我的示例中,我删除了添加到我的JPanel的所有JCheckBoxes。Makesure
我正在尝试创建一个程序,允许用户单击一个按钮在JPanel中放置一些东西,并允许他们四处移动这个项目。我已经找到了一个很好的布局来允许移动组件(参见this链接)。但是,我只是好奇创建这样的布局的最佳方式?我希望有这样的东西:我怎样才能做到这一点?我要使用两个JPanel还是其他什么东西? 最佳答案 主面板(或窗口内容面板)必须有一个BorderLayout作为布局管理器。然后,按钮面板将添加到BorderLayout.WEST并将拖动面板添加到BorderLayout.CENTER。有一个VisualGuideSwing布局管理器
我无法从主类获取我的JFrame来显示另一个类的JPanel。一切都编译无误。JFrameTest.java:packagejframetest;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;publicclassJFrameTestextendsJFrame{publicJFrameTest(){FlowLayoutmainLayout=newFlowLayout();setSize(320,480);setResizable(
我有一个关于拖放的问题:我可以删除标签、文本或图标。但我想拖放一个JPanel及其所有组件(标签、文本框等)。我该怎么做? 最佳答案 此解决方案有效。一些警告开始。我没有使用TransferHandlerAPI。我不喜欢它,它太严格了,但这是个人的事情(它做什么,它做得很好),所以这可能不符合您的期望。我正在使用BorderLayout进行测试。如果你想使用其他布局,你将不得不尝试弄清楚。DnD子系统确实提供有关鼠标点的信息(移动和放下时)。那么我们需要什么:一种数据flavor。我选择这样做是因为它允许更多的限制publiccla
我使用Swing库制作了一个Java程序。现在我想将我的控制台输出重定向到JFrame或JPanel。 最佳答案 您需要创建一个OutputStream将输出重定向到文本区域并实现OutputStream接口(interface)的所有必要方法,然后在您的主程序中,将您的标准输出重定向到该流中。我在我的一个程序中使用了这样的东西:importjava.io.IOException;importjava.io.OutputStream;importjavax.swing.JTextArea;importjavax.swing.Swin
我应该如何在JFrame中获得真实的JPanel大小? 最佳答案 在显示之前,尺寸将为0,0,因为事先未计算组件和布局。 关于java-如何获得真正的JPanel大小?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12010587/
基本上我想做的是添加2张图片,在JPanel的中心并排添加,在JPanel的右侧添加一个JLabel,所以我被告知将JPanel的布局设置为BorderLayout并使用BorderLayout.CENTER添加图片,使用BorderLayout.EAST添加JLabel。JPanelpanel=newJPanel();panel.SetLayout(newBorderLayout(100,100));panel.add(pic1,BorderLayout.CENTER);panel.add(pic2,BorderLayout.CENTER);panel.add(newJLabel("
我正在设计一个在JFrame中包含两个JPanel的程序,一个用于保存图像,另一个用于保存GUI组件(搜索字段等)。我想知道如何将图像绘制到JFrame中的第一个JPanel?这是我的构造函数的示例代码:publicUITester(){this.setTitle("Airplane");Containercontainer=getContentPane();container.setLayout(newFlowLayout());searchText=newJLabel("EnterSearchTextHere");container.add(searchText);imagepan
当窗口未装饰时,是否可以通过单击窗口中的面板之一来移动窗口?我有一个带有40像素大小的无光泽边框的主面板,以及一些内部带有控件的面板,我想在单击该边框时移动窗口。这可能吗? 最佳答案 您可以在带边框的面板上放置另一个面板,使边框可见。使用以下代码移动您的窗口。publicclassMotionPanelextendsJPanel{privatePointinitialClick;privateJFrameparent;publicMotionPanel(finalJFrameparent){this.parent=parent;ad
我有以下自定义JPanel,我已使用NetbeansGUI构建器将它添加到我的框架中,但背景不会改变!我可以看到圆圈,用g.fillOval()绘制。怎么了?publicclassBoardextendsJPanel{privatePlayerplayer;publicBoard(){setOpaque(false);setBackground(Color.BLACK);}publicvoidpaintComponent(Graphicsg){super.paintComponent(g);g.setColor(Color.red);g.fillOval(player.getxCent