📄 createtool.java
字号:
package com.sunking.tp.tool;import java.awt.*;import java.awt.event.MouseEvent;import javax.swing.*;import com.sunking.tp.framework.*;/** * * <p>Title: </p> * <p>Description: 创建组件工具</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author <a href="mailto:sunkingxie@hotmail.com">SunKing</a> * @version 1.0 */public class CreateTool extends AbstractTool { int index = 3; JTPComponent btt; JTPComponent source; Point lastPoint; /** * * @param desk 所属绘图桌面 * @param c 被创建组件的原型 * @param icon 图标 */ public CreateTool(Desktop desk,JTPComponent c,Icon icon) { super(desk); setToolTip("Create"); setIcon(icon); source = c; } /** *启用工具 */ public void enabledTool() { super.enabledTool(); desk.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } public void mousePressed(MouseEvent e) { lastPoint = e.getPoint(); btt = (JTPComponent)(source.clone());//复制一个做为新创建的组件 btt.setText("["+index+++"]"+source.getText()); ((Component)btt).setLocation(e.getPoint()); ((Container)desk).add(((Component)btt), null); } public void mouseReleased(MouseEvent e) { /** *长宽为0时表示未创建 */ if(((Component)btt).getWidth() == 0 || ((Component)btt).getHeight() == 0){ ((Container)desk).remove(((Component)btt)); } lastPoint = null; btt = null; desk.setTool(null); } /** *拖动组件时改变大小 */ public void mouseDragged(MouseEvent e){ if(btt!=null&&lastPoint != null){ int x=e.getX(),y=e.getY(),m=lastPoint.x,n=lastPoint.y; int tmp=0; if(x<m){tmp=x;x=m;m=tmp;} if(y<n){tmp=y;y=n;n=tmp;} ((Component)btt).setBounds(m,n,x-m,y-n); ((Container)desk).repaint(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -