事件管理器 4个象限【还没有完成】
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
1,改完成了一个大概的样子,还要把Text改成List,可以添加,可以存到文件或者数据库中去。
public class Coordinate {
private void createArea(Composite parent) {
SashForm top = new SashForm(parent, SWT.HORIZONTAL);// 定义一个分割窗容器
top.setLayout(new FillLayout());
Composite right = new Composite(top, SWT.NONE);
Composite left = new Composite(top, SWT.NONE);
top.setWeights(new int[] {1,2});
right.setLayout(new FillLayout());
left.setLayout(new FillLayout());
new Text(right, SWT.BORDER|SWT.WRAP|SWT.V_SCROLL);
SashForm x_coordinate = new SashForm(left, SWT.VERTICAL);// 定义一个分割窗容器
x_coordinate.setLayout(new FillLayout());
Composite comp1 = new Composite(x_coordinate, SWT.NONE);
Composite comp2 = new Composite(x_coordinate, SWT.NONE);
x_coordinate.setWeights(new int[] {1,1});
comp1.setLayout(new FillLayout());
comp2.setLayout(new FillLayout());
final Composite y1_comp = new Composite(comp1, SWT.NONE);
final Composite y2_comp = new Composite(comp2, SWT.NONE);
final FormData sashData1 = new FormData(),sashData2 = new FormData();
final Sash sash1,sash2;
final Composite quadrant1,quadrant2,quadrant3,quadrant4;
{
quadrant1 = new Composite (y1_comp, SWT.NONE);
sash1 = new Sash (y1_comp, SWT.VERTICAL);
quadrant2 = new Composite (y1_comp, SWT.NONE);
final FormLayout form = new FormLayout ();
y1_comp.setLayout (form);
FormData quadrant1Data = new FormData ();
quadrant1Data.left = new FormAttachment (0, 0);
quadrant1Data.right = new FormAttachment (sash1, 0);
quadrant1Data.top = new FormAttachment (0, 0);
quadrant1Data.bottom = new FormAttachment (100, 0);
quadrant1.setLayoutData (quadrant1Data);
int percent = 50;
sashData1.left = new FormAttachment (percent, 0);
sashData1.top = new FormAttachment (0, 0);
sashData1.bottom = new FormAttachment (100, 0);
sash1.setLayoutData (sashData1);
FormData quadrant2Data = new FormData ();
quadrant2Data.left = new FormAttachment (sash1, 0);
quadrant2Data.right = new FormAttachment (100, 0);
quadrant2Data.top = new FormAttachment (0, 0);
quadrant2Data.bottom = new FormAttachment (100, 0);
quadrant2.setLayoutData (quadrant2Data);
}
{
quadrant3 = new Composite (y2_comp, SWT.NONE);
sash2 = new Sash (y2_comp, SWT.VERTICAL);
quadrant4 = new Composite (y2_comp, SWT.NONE);
final FormLayout form = new FormLayout ();
y2_comp.setLayout (form);
FormData quadrant3Data = new FormData ();
quadrant3Data.left = new FormAttachment (0, 0);
quadrant3Data.right = new FormAttachment (sash2, 0);
quadrant3Data.top = new FormAttachment (0, 0);
quadrant3Data.bottom = new FormAttachment (100, 0);
quadrant3.setLayoutData (quadrant3Data);
int percent = 50;
sashData2.left = new FormAttachment (percent, 0);
sashData2.top = new FormAttachment (0, 0);
sashData2.bottom = new FormAttachment (100, 0);
sash2.setLayoutData (sashData2);
FormData quadrant4Data = new FormData ();
quadrant4Data.left = new FormAttachment (sash2, 0);
quadrant4Data.right = new FormAttachment (100, 0);
quadrant4Data.top = new FormAttachment (0, 0);
quadrant4Data.bottom = new FormAttachment (100, 0);
quadrant4.setLayoutData (quadrant4Data);
}
final double[] ratio = new double[]{0.5};
final int limit = 20;
Listener listener = new Listener () {
Rectangle sashRect,shellRect;
public void handleEvent (Event e) {
if(sash1 == e.widget) {
sashRect = sash1.getBounds ();
shellRect = y1_comp.getClientArea ();
} else {
sashRect = sash2.getBounds ();
shellRect = y2_comp.getClientArea ();
}
//right限制了 left的最大值(为103)这里可以提出去,免得不断地调用,噢,不行,shell有可能变大。
//limit限制了 left的最小值(为20)
int right = shellRect.width - sashRect.width - limit;
e.x = Math.max (Math.min (e.x, right), limit);
if (e.x != sashRect.x) {
sashData2.left = new FormAttachment (0, e.x);
y2_comp.layout ();
sashData1.left = new FormAttachment (0, e.x);
y1_comp.layout ();
}
if(shellRect.width != 0) {
ratio[0] = (double)e.x/(shellRect.width);
}
}
};
sash1.addListener (SWT.Selection, listener);
sash2.addListener (SWT.Selection, listener);
parent.addControlListener(new ControlAdapter() {
Rectangle shellRect,sashRect;
public void controlResized(ControlEvent e) {
shellRect = y1_comp.getClientArea ();
sashRect = sash1.getBounds ();
if(shellRect.width != 0) {
int right = (int) (ratio[0] * shellRect.width);
right = Math.max (Math.min(right,shellRect.width - sashRect.width - limit), limit);
sashData2.left = new FormAttachment (0, right);
y2_comp.layout ();
sashData1.left = new FormAttachment (0, right);
y1_comp.layout ();
}
}
});
createArea4quadrant1234(quadrant1,quadrant2,quadrant3,quadrant4);
}
private void createArea4quadrant1234(Composite quadrant1, Composite quadrant2, Composite quadrant3, Composite quadrant4) {
quadrant1.setLayout(new FillLayout());
quadrant2.setLayout(new FillLayout());
quadrant3.setLayout(new FillLayout());
quadrant4.setLayout(new FillLayout());
Text text1 = new Text(quadrant2,SWT.BORDER | SWT.WRAP|SWT.V_SCROLL);
text1.setText("quadrant1");
Text text2 = new Text(quadrant1,SWT.BORDER | SWT.WRAP|SWT.V_SCROLL);
text2.setText("quadrant2");
Text text3 = new Text(quadrant3,SWT.BORDER | SWT.WRAP|SWT.V_SCROLL);
text3.setText("quadrant3");
Text text4 = new Text(quadrant4,SWT.BORDER | SWT.WRAP|SWT.V_SCROLL);
text4.setText("quadrant4");
text1.setToolTipText("重要紧急");
text2.setToolTipText("不重要紧急");
text3.setToolTipText("不重要不紧急");
text4.setToolTipText("重要不紧急");
text1.setText("重要紧急");
text2.setText("不重要紧急");
text3.setText("不重要不紧急");
text4.setText("重要不紧急");
}
private void open() {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setLayout(new FillLayout());
// ---------创建窗口中的其他界面组件-------------
createArea(shell);
// -----------------END------------------------
shell.setSize(800, 600);
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String[] args) {
new Coordinate().open();
}
}
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |