Java自定义拖放-没有对TransferHandler的回调。我想为JPanel实现自定义拖放功能子类。我遵循标准DnD教程的指南:DragandDropandDataTransfer从表面上看,事情似乎很简单,但当我真正尝试一下,我没有发现任何DnD行为正在发生的迹象。在事实上,我的TransferHandler中的任何方法都没有被调用。那么,让我们回顾一下我做了什么......我创建了自己的Container类,它声明自己扩展JPanel:publicclassDnDUnitPanelextendsJPanel{...}我从这个演示中复制了ListTransferHandler:
我想要一个可调整大小的面板,它始终具有固定深度的顶部绿色面板。即所有高度的变化应该只影响黄色面板。我下面的代码几乎没问题,除了绿色面板的大小略有不同。我该怎么做?Panel.setLayout(newBoxLayout(Panel,BoxLayout.Y_AXIS));Panel.setAlignmentX(Component.LEFT_ALIGNMENT);JPanelTopPanel=newJPanel();TopPanel.setPreferredSize(newDimension(80,150));TopPanel.setVisible(true);TopPanel.setBa
我想在JPanel中随机放置一些按钮(x,y),这些布局类很烦人。在Swing中这甚至可能吗? 最佳答案 如果使用null布局,则可以设置坐标:panel.setLayout(null);Buttonb=newButton(....);panel.add(b);b.setSize(width,height);b.setLocation(x,y);但强烈建议使用布局。布局类并不“烦人”,如果您正确理解它们,它们就是您的friend。我建议阅读tutorialaboutGridBagLayout,它很容易理解(有点像html表格)并且非
如何在JavaSwing中获取面板的所有组件?C#中有没有类似foreach的方法来处理JPanel的所有子组件? 最佳答案 您可以使用方法getComponents:Component[]components=jpanel.getComponents(); 关于java-如何在JavaSwing中获取面板的所有组件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1572766
我在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(
我有一个简短的问题。我对Swing有了一点经验,最简单的方法是绘制一个相当大的GUI。作为GUI的一部分,我想要前进和后退按钮。我尝试采用的方法是实现将当前JPanel推送到堆栈并检索先前值(向前或反向(因此2个堆栈))的方法。我无法让它工作。也许我正在以完全错误的方式处理它,或者堆栈不能按照我使用它的方式使用。无论哪种情况,这都让我很烦恼。我想可能有更简单的方法,比如卡片布局,但我认为这种方法应该有效,这就是令人讨厌的地方。可能值得注意的是,我正在使用JFrame“基类”并根据屏幕更改中央JPanel。然而,导航栏作为“基类”的一部分是不变的这个“基类”的代码:publicclass
我有一个关于拖放的问题:我可以删除标签、文本或图标。但我想拖放一个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