Tag: swing swing

Java拖放图像并在拖动时显示图像缩略图

我有一个带有图像节点的网格布局,我想在我的应用程序中添加dndfunction,例如当我将图像节点拖放到目标时,JPanel会做一些操作,例如以原始大小显示,删除等等。我已经实现了这与使用transferhandler和DropTargets,DragSource等的方法有关。但我有两个问题,我想与你讨论它们。 a)两种方式中哪一种更好用? 据我所知,第二种方式给了我比TransferHandler更多的function,第一种方法最简单易用。 但我可以通过这两种方式完成我的工作,有两种更有效,或者更重要的是我喜欢编码。 b)当拖动发生时,我想在光标附近显示图像。 我做的第一个是使用JFrame的glassPane并创建一个JCompoment,它绘制正确的图像并跟随光标。我可以这样做吗? 在此之后,我在文档中看到DragSource的startDrag方法获取了一个dragImage参数,这是我想要的原因,我尝试传递一个Image,但是我看不到任何结果。 ————– UPDATE ——————— 对于第二个问题(b)我尝试使用玻璃板但我在java DND和我的听众之间的互通方面存在问题,以便在玻璃板上显示图像拇指。 每次只有其中一个正常工作。 ! 更具体地说,当我已经调用startDrag()方法时,不会触发mouseDragged事件 感谢您的时间。

从右到左方向的按钮大小无关紧要

我有9个jbuttons添加到jpanel,面板添加到jscrollpane,它添加到jframe。 http://www.pic1.iran-forum.ir/images/up9/95426323683658592564.jpg 当我通过以下applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);更改框架方向时: applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 面板向右移动,按钮大小固定,不会填充面板,但您在下图中看到滚动条填满了面板的所有宽度 http://www.pic1.iran-forum.ir/images/up9/60975202722295688553.jpg (我使用gridbaglayout添加按钮,使用borderlayout.center添加scrollpane)。 这是java中的错误还是? 编辑:它是最简单的观点。 有帮助吗? import java.awt.BorderLayout; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.*; public class MyFrame extends JFrame{ private JButton[] arrayButton = new JButton[9]; private JButton btnLeft = new JButton(“”); private JScrollPane scpButtons = new JScrollPane(); public MyFrame() { for (int i = 0; […]

Java GUI旋转和Rectangle的翻译

我试图在JPanel中绘制一个矩形,它可以平移,然后自行旋转以模仿汽车的运动。 我已经能够使矩形平移和旋转,但它围绕(0,0)的原点旋转。 我非常高兴我可以让矩形移动和旋转,因为我对Java GUI很新,但我似乎无法得到如何让矩形围绕它自己旋转,因为我尝试了更多它,当我初始化矩形并将其旋转45度,它的位置已更改,我假设是从旋转方法附加的变换矩阵。 我通过网站查看了如何解决这个问题,但是我只发现了如何旋转矩形而不是如何旋转和移动模拟汽车的运动。 我认为它关注它的变换矩阵,但我只是猜测。 所以我的问题是如何让矩形能够旋转并在自身周围移动而不是JPanel中的一个点。 这是我到目前为止的代码: public class Draw extends JPanel implements ActionListener { private int x = 100; private int y = 100; private double theta = Math.PI; Rectangle rec = new Rectangle(x,y,25,25); Timer timer = new Timer(25,this); Draw(){ setBackground(Color.black); timer.start(); } public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2d = (Graphics2D)g; g2d.setColor(Color.white); […]

是否可以在JFrame中使用JButton,JTextField等“可移动”/“可拖动”组件?

基本上我计划在JFrame上放置一些按钮,文本字段,标签等,我希望用户可以用鼠标在该JFrame上移动不同的组件。 我已经看到了使用MouseListeners,子类化JComponent代码,DropSource / DropTarget实现等的各种方法,但我不确定哪种是“推荐”方式(我不需要支持不同帧/应用程序之间的“拖放”)这是大多数例子似乎做的事情)。

拖放图像

我需要在swing中创建一个拖放系统,拖动过程中被拖动的东西的图像会附加到光标上。 从理论上讲,这是可以实现的 public Icon TransferHandler.getVisualRepresentation(Transferable t) 但似乎有一个长期存在的错误( 这里 ),这意味着永远不会调用此方法。 我知道我可以通过使用DragSource等实现我自己的DnD系统来做到这一点,但是有没有人知道更简单的工作环境能够得到我需要的东西吗?

摆动拖放

我想在摇摆中实现一个游戏板(需要成为一个桌子,不论是关于jtable还是gridlayout等……)我可以将图片拖放到这个游戏板和所有的单元格中图片落在将收到通知,他们被选中。 任何人都可以帮忙吗? 如何让表格中的几个单元格知道对象被丢弃了?

Java Swing – 造成工件的半透明组件

我目前正在为大学课程开展一个小组项目,而且我遇到了一些绊脚石。 我们决定实施的程序是一个点对点聊天客户端,它有一个用于存储和共享用户名等的中央服务器。我被分配到GUI。 一位朋友开玩笑地建议我加入“火红的背景!” 所以我决定这样做,但要有一个用户选择的背景图像。 按原样,只有背景图像的一些部分可见,所有组件都在其上方,因此我决定尝试实现半透明效果。 这就是我的问题所在: 当从输入框向聊天窗口发送信息,或者在导航朋友列表或滚动聊天窗口时,遗留了奇怪的伪像。 这些工件有时是发送按钮的半透明“鬼”,有时是菜单的一部分,或旧文本。 它看起来像整个框架没有正确重绘,但我不知道它是如何工作的。 对于实现JTextComponent的组件,我将其选择颜色设置为半透明颜色。 对于其他组件,我将背景设置为半透明。 我有一个函数,setTranslucency(组件com),它查看一个组件,根据它是什么设置它的半透明,然后看它是否是某种类型的容器并递归设置每个项目的半透明度。 现在,我发现解决这个问题的方法是将窗口拖出视线(例如最小化或拖动屏幕外的窗口)。 所以, 1)是否有办法强制整个窗口更新,就像我将其拖离屏幕或最小化时一样? 要么, 2)我首先做错了吗? 如果是这样,我该如何解决? 这是一张参考图片: http://sofzh.miximages.com/java/4J9GJ.png

setDragImage无法正常工作 – Java 7

我正在尝试设置代码,以便用户可以从JTable拖动到JList,并使用TransferHandler中的Java 7函数setDragImage自定义拖动图像。 我在java教程网站上抓了一个例子,他们讲授Drag n Drop,然后添加了一个“setDragImage”代码。 但它不起作用。 请参阅下面的代码,并在importData函数中找到setDragImage()行。 为什么这不起作用? /* * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. * */ import java.util.*; import java.awt.*; import java.awt.event.*; import java.text.*; import java.awt.datatransfer.*; import java.awt.image.BufferedImage; import javax.swing.*; import javax.swing.text.*; import javax.swing.tree.*; import javax.swing.table.*; public class BasicDND extends JPanel implements ActionListener { private static JFrame frame; […]

将文件从操作系统拖放到Java应用程序(Swing)

首先我要说的是,我一直在阅读拖拽教程和类似的问题,但不幸的是,我对这件事情感到更加困惑。 我想要实现的是相对简单的,所以我很惊讶它已经让我陷入了这么多麻烦。 我正在编写一个小实用程序应用程序,它将一堆结果文件(自定义xml类型)合并到一个大的制表符分隔文本文件中。 大多数function已经编码,但我想为它制作一个不错的GUI。 我想要的是能够以漂亮和亲切的方式将文件拖放到组件(例如JTextArea )中(读取:不是完整路径,而是一个小图标和名称)。 我希望能够提供一个JFileChooser来浏览文件。 然后我将按顺序解析文件以生成我想要的矩阵。 到目前为止我所学到的是框架已经存在,但是需要定制任何其他function。 我在Netbeans中创建了一个测试GUI,并尝试将一堆文件拖到JTextArea ,但它们显示为文件路径,并且不可否认它看起来非常难看。 我非常感谢有关如何以一种简洁的方式解决(或澄清)这个问题的任何提示和指导。 请注意,我打算在多个不同的操作系统(Mac,Win和Linux)上使用该软件。 编辑:我到目前为止的代码基于Sun教程中的一个示例,如下所示 import java.awt.datatransfer.*; import java.awt.event.*; import java.awt.*; import java.io.*; import javax.swing.*; import javax.swing.UIManager.LookAndFeelInfo; import javax.swing.border.TitledBorder; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.text.*; public class ConsolidatorDemo extends JPanel implements ActionListener { private static final long serialVersionUID = -4487732343062917781L; JFileChooser fc; JButton clear; JTextArea dropZone, console; JSplitPane […]

如何将图像从一个面板拖动到另一个面板

我创建了一个框架,然后在其中创建了面板。 我在一个面板中放置了一个图像,现在我需要将该图像拖到另一个面板上。 我怎么能这样做 作为初学者,请逐步解释。