`

事件管理器 4个象限【还没有完成】

 
阅读更多

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();
	}
}

 

效果图:



 

  • 大小: 7.2 KB
分享到:
评论

相关推荐

    四象限法每周工作管理.docx

    四象限法是一种时间管理方法,它将任务分成四个象限:重要不紧急、紧急重要、不重要不紧急、紧急不重要。通过对任务的分类和优先级排序,个体可以更好地管理自己的时间,提高工作效率和质量。 四象限法的核心思想是...

    0217时间管理四象限法则(1).ppt

    时间管理之四象限法则是斯蒂芬·科维(Stephen Covey)提出的一个时间管理方法,该方法将事情分为四个象限:重要而且紧急、重要但不紧急、不重要但紧急、不重要且不紧急。通过该方法,可以帮助人们更好地管理时间,...

    四象限评价法DOC

    它通过将评估对象按照两个关键维度进行划分,形成四个不同的象限,以此帮助管理者清晰地识别和处理各种情况。这种方法简单易懂,实用性极强,尤其适用于商业环境和日常工作中。 在四象限评价法中,通常选取的两个...

    行业资料-建筑装置-带有磁笔及印章的四象限彩色磁力画板.zip

    四象限彩色磁力画板的设计灵感来源于经典的坐标轴概念,将工作区域划分为四个部分,每个象限代表不同的设计阶段或功能区域,使得项目管理更加有序。这种布局有助于设计师在构思、草图绘制、细节完善以及最终方案确认...

    XXXX时间管理四象限法则(全).pptx

    XXXX时间管理四象限法则是一个非常实用的时间管理方法,该方法将工作按照重要和紧急两个不同的程度进行了划分,分为四个象限。 时间管理之“四象限法则”是美国管理学家科维提出的一个时间管理理论。该理论将工作...

    卓越中层管理培训 -时间管理学习手册(完整版).pdf

    这一理论将所有的工作和生活活动按照紧急性和重要性划分为四个象限: 第一象限:紧急且重要的事务 这部分包含了那些具有时效性且对实现目标有重大影响的任务。例如,即将到期的项目、突发危机处理等。这类事务需要...

    要事第一的时间管理培训.pptx

    在时间管理矩阵图中,我们可以看到四个象限:紧急而重要、重要但不紧急、紧急但不重要、不重要也不紧急。每个象限都对应着不同的结果,例如危机处理、忙于收拾残局、有远见、平衡、纪律等。 时间管理的基本策略是...

    从“猫眼象限”的诞生到城市智能规划工具系统.pdf

    智能规划系统分为四个主要部分: - **获取城市数据**:这一阶段的目标是收集城市中的各类数据,并通过可视化手段展示这些数据。例如,“猫眼象限”能够采集调研区域的人口数量、机动车数量等信息。 - **认知城市**...

    时间管理-心得-三象限法.pdf

    参考叶武滨时间管理和丰田一页纸工作法,自我总结的三象限法。 做事情来了一件做一半,再做另一件。 最终什么都没有完成,但都做了,也没有成就感。 针对这样的现象,如何做?怎么做?我来分享下自己的经验。 ...

    0217时间管理四象限法则.ppt

    时间管理之“四象限法则”是斯蒂芬·科维(Stephen Covey)提出的一个时间管理方法,该方法将所有任务分成四个象限,根据任务的重要性和紧急程度对任务进行分类,以便更好地管理时间和提高工作效率。 第一象限:...

    企业管理时间管理讲授.ppt

    这个理论将任务分为四个象限: 1. 第一象限:急迫且重要的事务。这是需要立即处理的问题,如应对突发状况、处理危机等。如果长期忽视这一象限,可能会导致压力增加和工作效率下降。 2. 第二象限:重要但不急迫的事务...

    时间管理高效人士的7个习惯.pdf

    时间管理矩阵图将事务按照重要性和紧急性划分为四个象限: - 第一象限:重要且紧急的事。 - 第二象限:重要但不紧急的事。 - 第三象限:紧急但不重要的事。 - 第四象限:不紧急也不重要的事。 通过矩阵图,我们可以...

    时间管理所相关的小技巧

    该理论将任务分为四个象限: 1. **重要且紧急**:这些任务需要立即处理,通常是危机或紧迫的问题。 2. **重要但不紧急**:这些任务非常重要,但不紧急,如长期规划和个人成长等。 3. **不重要但紧急**:这些任务...

    要事第一的时间管理_.pptx

    * 有效的时间管理能够以最高的效率完成重要的事情 * 有效的时间管理可以减少加班时间,提高个人生活品质 二、时间管理的定义 * 时间是什么? * 时间管理中最根本的要素? * 时间管理的实质是什么? 三、时间管理...

    大学生时间管理讲义.pptx

    时间具有四个显著特性: 1. 供给毫无弹性:时间无法增加或减少。 2. 无法蓄积:不能把时间存起来以后再用。 3. 无法取代:时间一旦过去,无法用其他事物替代。 4. 无法失而复得:错过的时间无法恢复。 时间管理的...

    如何做好时间管理

    每完成四个“番茄钟”,则休息更长时间。这种方法有助于保持高度集中,并避免疲劳。 综上所述,时间管理是一项至关重要的技能,它不仅关乎工作效率,还直接影响到个人生活的质量。通过采取合适的方法和策略,我们...

    25-华为时间管理培训-50页z240119.docx

    3. 四象限原则:将工作分为四个象限:紧急且重要、重要但不紧急、紧急但不重要、不紧急也不重要。 4. 有序原则:按照优先级和紧急程度排列工作顺序。 5. 对象原则:将工作对象化,确保每个任务都有明确的目标和期限...

    时间管理android

    这四个象限分别是: 1. **重要且紧迫**:这类任务是必须立即处理的,如紧急的工作项目或突发的健康问题。它们往往带来直接的压力和后果。 2. **重要但不紧迫**:这是时间管理的重点区域,包括长期规划、学习新技能...

    台中央大学时间管理.pptx

    时间管理四象限理论是另一个重要的概念,它将任务分为四个类别:急迫又重要的事情(第一象限)、重要但不急迫的事情(第二象限)、急迫但不重要的事情(第三象限)以及不急迫也不重要的事情(第四象限)。...

    Gartner2020年商业智能和分析平台魔力象限报

    2020年的商业智能和分析平台魔力象限报告聚焦于商业智能(BI)和分析技术的发展趋势、市场定义、以及战略规划假设等多个方面。报告中提到的关键知识点如下: 1. 增强分析(Augmented Analytics)正成为商业智能和分析...

Global site tag (gtag.js) - Google Analytics