社区
Java SE
帖子详情
关于java拖动对话框的标题栏的问题,实现代码在哪里?
bbigface
2005-08-22 09:56:28
window和frame都可以通过鼠标拖动标题栏,但是jdk1.3和1.4的实现有不同,我想找到源码看看,恳请高手指教!
...全文
67
1
打赏
收藏
关于java拖动对话框的标题栏的问题,实现代码在哪里?
window和frame都可以通过鼠标拖动标题栏,但是jdk1.3和1.4的实现有不同,我想找到源码看看,恳请高手指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
congliu
2005-08-23
打赏
举报
回复
import java.awt.*;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.event.MouseInputAdapter;
public class UndecoratedFrame extends JFrame
{
private static final int TITLE_HEIGHT = 20;
public UndecoratedFrame() throws HeadlessException
{
super();
setUndecorated(true);
MouseHandler ml = new MouseHandler();
addMouseListener(ml);
addMouseMotionListener(ml);
}
public UndecoratedFrame(String title) throws HeadlessException
{
super(title);
setUndecorated(true);
MouseHandler ml = new MouseHandler();
addMouseListener(ml);
addMouseMotionListener(ml);
}
public Insets getInsets()
{
return new Insets(TITLE_HEIGHT, 1, 1, 1);
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(new Color(0, 0, 128));
g.drawRect(0, 0, getWidth()-1, getHeight()-1);
g.fillRect(0, 0, getWidth(), TITLE_HEIGHT);
FontMetrics fm = g.getFontMetrics();
g.setColor(Color.white);
g.drawString(getTitle(), 2, (TITLE_HEIGHT - fm.getHeight()) / 2 + fm.getAscent());
}
private class MouseHandler extends MouseInputAdapter
{
private Point point;
public void mousePressed(MouseEvent e)
{
if (e.getY() <= TITLE_HEIGHT) {
this.point = e.getPoint();
}
}
public void mouseDragged(MouseEvent e)
{
if (point != null) {
setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
Point p = e.getPoint();
int dx = p.x - point.x;
int dy = p.y - point.y;
int x = getX();
int y = getY();
setLocation(x + dx, y + dy);
}
}
public void mouseReleased(MouseEvent e)
{
point = null;
setCursor(Cursor.getDefaultCursor());
}
}
public static void main(String[] args)
{
JFrame f = new UndecoratedFrame("Undecorated Frame");
f.getContentPane().add(new JLabel("Hello World!", JLabel.CENTER), BorderLayout.CENTER);
f.setSize(400, 400);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
记事本的设计与
实现
Java
版实验报告
设计目标是构建一个基于
Java
Swing的图形用户界面(GUI),包括主窗体、
标题栏
、状态栏、文件菜单、编辑菜单、格式菜单和帮助菜单。主窗体用于显示和编辑文本,
标题栏
显示程序名称和当前文件名,状态栏则显示程序的...
计算机软件-商业源码-67 响应
标题栏
事件.zip
标题栏
事件通常指的是用户在应用程序窗口的
标题栏
上执行的操作,如单击、双击、
拖动
等。这些事件在桌面应用开发中非常重要,因为它们允许用户与窗口进行交互,如最小化、最大化、关闭窗口或移动窗口位置。 描述中...
mastercam软件打开
对话框
显示不全的点不了确定解决方法
然而,在实际使用过程中,用户可能会遇到各种
问题
,其中一种常见
问题
是软件的打开
对话框
显示不全,导致无法点击“确定”按钮。这个
问题
在分辨率较低的设备上尤为突出,特别是那些分辨率设置为1366*768的笔记本电脑。...
Java
实验课
实现
绘图软件
在工具栏上添加三个JRadioButton按钮,分别表示画圆、画矩形、划直线(点下鼠标左键后,
拖动
鼠标线条随之移动,释放右键后划出直线),一个JButton按钮用于打开颜色选择
对话框
,选择线条的颜色;添加一个JButton按钮...
Java
开发类似于Microsoft 的记事本
【标题】"
Java
开发类似于Microsoft 的记事本"揭示了一个
Java
编程项目,目标是创建一个基于J2SE(
Java
2 Platform, Standard Edition)GUI(图形用户界面)的文本编辑器,它模仿了Microsoft Windows操作系统中的经典...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章