import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionListener;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.border.BevelBorder;
public class EasyMove extends MouseAdapter implements MouseMotionListener {
private Point offset;
private Component host;
public static void main(String[] args) {
JFrame frm = new JFrame("EasyMove demo.");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize(300, 300);
frm.setUndecorated(true);// 影藏边框
frm.getRootPane().setBorder(
BorderFactory.createBevelBorder(BevelBorder.RAISED));
new EasyMove().install(frm);
JButton exit = new JButton("Exit");
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
frm.getContentPane().add(exit, BorderLayout.SOUTH);
frm.setVisible(true);
}
public synchronized void install(Component comp) {
uninstall();
host = comp;
host.addMouseListener(this);
host.addMouseMotionListener(this);
}
public synchronized void uninstall() {
if (host != null) {
host.removeMouseListener(this);
host.removeMouseMotionListener(this);
host = null;
}
}
public void mousePressed(MouseEvent e) {
if (e.getSource() == host)
offset = e.getPoint();
}
public void mouseDragged(MouseEvent e) {
if (e.getSource() != host)
return;
final int x = host.getX();
final int y = host.getY();
final Point lastAt = e.getPoint();
host.setLocation(x + lastAt.x - offset.x, y + lastAt.y - offset.y);
}
public void mouseMoved(MouseEvent e) {
}
}
java swing:http://www.java2s.com/Code/Java/Swing-JFC/CatalogSwing-JFC.htm
分享到:
相关推荐
当用户触摸屏幕并移动手指时,我们计算滑动距离,根据滑动方向决定是否执行显示或隐藏标题栏的动画。 为了更全面地了解这个项目,你可以从提供的`LinglingyiScrollViewDemo`压缩包中找到完整的代码示例,包括布局...
通过继承`javax.swing.JFrame`类,你可以创建一个包含标题栏、边框以及默认关闭操作的窗口。在创建`JFrame`实例后,通常会设置其大小、位置、可见性等属性,例如: ```java JFrame frame = new JFrame("我的好友...
在标题提到的"Swing 多选栏控件"中,很可能是指使用了`JList`的多选模式,或者可能是定制的组件,如带有左右两部分的双列选择器,用户可以通过双击将项目在两列之间移动。 1. **JList**:`JList`是一个可以显示一组...
为了实现全屏,需要隐藏系统标题栏和其他UI元素。 3. **System.getProperty()**:Java ME中,可以使用`System.getProperty("microedition.display.fullscreen")`来检查设备是否支持全屏模式。如果返回`true`,则...
【标题】"桌面小闹钟"是一款专为个人电脑用户设计的小巧实用的桌面应用程序,它可以在您的屏幕上以类似QQ的样式隐藏,提供方便且不占空间的计时提醒服务。 【描述】作为一款初学者的项目,"桌面小闹钟"展示了如何...
标题栏的闪动效果是通过定时器改变文本颜色或字体大小来实现的。使用`setInterval`和`clearInterval`来控制动画的开始和结束,同时修改CSS属性。 8. **文字打字机效果** (9 文字打字机效果.html): 打字机效果是...
`JWindow` 是一个没有边框的窗口,而`JFrame` 是带有标准标题栏和关闭按钮的标准窗口。 - 使用`MouseListener` 和 `MouseMotionListener` 接口来监听鼠标的点击和移动事件,这是实现截图功能的关键。 2. **屏幕...
// 设置显示在通知栏的标题和描述 request.setTitle("正在下载文件"); request.setDescription("这是从example.com下载的文件"); // 添加其他可选参数,如允许在移动网络下下载 request....
- 实现方法:通过JavaScript监听事件并更新状态栏或标题栏的内容。 - **5.8 双击后,网页自动滚屏** - 描述:双击页面后,页面会自动滚动到顶部或底部。 - 实现方法:使用JavaScript监听双击事件,并通过滚动API...
在Java编程语言中,"Java坦克大战1.0版源代码"是一个实现经典坦克游戏的项目。这个项目可能包括游戏的各个组件,如游戏逻辑、用户界面、游戏对象(如坦克、子弹、障碍物)以及游戏状态管理。下面将详细讨论其中涉及...
以下是一个在Java中设置导航栏颜色的例子: ```java Toolbar toolbar = findViewById(R.id.toolbar); toolbar.setBackgroundColor(ContextCompat.getColor(this, R.color.your_color)); ``` 如果你使用Kotlin,代码...
8. `header.png`可能是指界面顶部的标题栏或者导航栏。 综合以上分析,这篇博客可能涵盖了以下几个方面的技术点: 1. **UI设计**:讲解如何设计符合平台规范的底部Tab,包括图标的设计和状态切换。 2. **编程实现**...
【标题】"高仿微信的主页面的例子"所涉及的知识点主要集中在移动应用开发领域,尤其是Android平台。这个示例代码旨在教你如何构建一个类似微信的主界面,其中包括了微信的一些核心功能和视觉元素。在Android开发中,...
实例255 拖动没有标题栏的窗体 325 实例256 取消窗体标题栏与边框 326 实例257 设置闪烁的标题栏 328 11.4 设置窗体的背景 329 实例258 设置窗体背景颜色为淡蓝色 329 实例259 实现带背景图片的窗体 330 实例260 使...
开发者通常会将这样的组件整合到自己的应用程序中,以创建一个具有个性化标题栏的ViewPager。通过这个自定义组件,开发者可以轻松地在每个页面之间切换时看到当前页面的标题,并通过下划线的变化来指示当前选中的...
标题栏通常固定在屏幕顶部,而搜索框则可以在用户上滑时隐藏,下滑时显示。为了实现这一效果,我们需要自定义一个滑动控件,以便能够监听和处理滑动事件。 在代码实现中,我们创建了一个名为`...
在这个场景中,我们关注的是一个基于"jQuery + Bootstrap"的示例项目,它实现了左侧菜单栏控制右侧页面内容切换的功能,并且结合了Bootstrap的弹框展示。下面我们将深入探讨这个项目的核心技术和实现细节。 首先,...