userrolefigure.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 78 行
JAVA
78 行
package net.sf.freenote.uml.figure;
import net.sf.freenote.directedit.DirectEditable;
import org.eclipse.draw2d.BorderLayout;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.Shape;
import org.eclipse.draw2d.geometry.Rectangle;
/**
* 用角的view
* @author levin
* @since 2008-1-29 下午07:12:21
*/
public class UserRoleFigure extends Figure implements DirectEditable{
//人形图,上圆下大
class PersonFigure extends Shape{
@Override
protected void fillShape(Graphics graphics) {
Rectangle full = this.getBounds();
int r=Math.min(full.height/6,full.width/2);
int midX=full.x+full.width/2;
//圆的rectangle
Rectangle top=new Rectangle(midX-r,full.y,r*2,r*2);
graphics.drawOval(top);
//横竖线
graphics.drawLine(midX, full.y+r*2, midX, full.y+r*4);
graphics.drawLine(midX-r,full.y+r*3, midX+r, full.y+r*3);
//斜线
graphics.drawLine(midX, full.y+r*4, midX-r, full.y+r*6);
graphics.drawLine(midX, full.y+r*4, midX+r, full.y+r*6);
}
@Override
protected void outlineShape(Graphics graphics) {
}
}
private PersonFigure person;
private Label descLabel;
public UserRoleFigure() {
super();
person=new PersonFigure();
descLabel=new Label();
BorderLayout layout = new BorderLayout();
setLayoutManager(layout);
setOpaque(true);
add(person,BorderLayout.CENTER);
add(descLabel,BorderLayout.BOTTOM);
}
@Override
public String getDesc() {
return descLabel.getText();
}
@Override
public void setDesc(String desc) {
descLabel.setText(desc);
}
@Override
public void paint(Graphics graphics) {
super.paint(graphics);
}
@Override
protected void paintChildren(Graphics graphics) {
super.paintChildren(graphics);
}
public Label getDescLabel() {
return descLabel;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?