- 浏览: 564667 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (344)
- ··············未分类············· (33)
- Eclipse 插件 (15)
- EDA 工具 (1)
- Linux/Unix (3)
- Java (43)
- Java Applet (1)
- Java Draw2d (22)
- Java Draw2d version2 (6)
- Java GEF (2)
- Java SWT (21)
- Java SWT Image 图像 (21)
- Java SWT Tree (16)
- Java SWT Table (4)
- Java SWT TableViewer (11)
- Java SWTbot (4)
- Java Test (2)
- Java Thread 多线程 (22)
- Java Zest (5)
- RC2_3S400学习笔记 (16)
- tcl 脚本 (10)
- Verilog (7)
- XML (6)
- 国家 (5)
- 感叹 (4)
- 面试题 (9)
- 生活 (36)
- 足球 世界杯 (8)
- 老公看你的 (3)
- web开发 (1)
- 数据结构——图 (7)
- c language (1)
最新评论
-
zxjlwt:
路过素人派http://surenpi.com
SWT 树的事件 SWT.Selection SWT.CHECK SWT.DefaultSelection -
hj01kkk:
1楼用法正解
JDK 7 中的 Fork/Join 模式 -
fish_no7:
使用 new SortTask().fork()
JDK 7 中的 Fork/Join 模式 -
wpf523:
mark
Java 多线程例子6 线程安全 线程同步 同步代码块 同步函数 -
uniquejava:
以前碰到过,估计是在icu包中实现了双击自动选中一段文本的功能 ...
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
源程序来自:snippet77
/******************************************************************************* * Copyright (c) 2000, 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.swt.snippets; /* * Table example snippet: resize columns as table resizes * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ */ import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class Snippet77 { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Composite comp = new Composite(shell, SWT.NONE); final Table table = new Table(comp, SWT.BORDER | SWT.V_SCROLL); table.setHeaderVisible(true); table.setLinesVisible(true); final TableColumn column1 = new TableColumn(table, SWT.NONE); column1.setText("Column 1"); final TableColumn column2 = new TableColumn(table, SWT.NONE); column2.setText("Column 2"); for (int i = 0; i < 10; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(new String[] {"item 0" + i, "item 1"+i}); } comp.addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { Rectangle area = comp.getClientArea(); Point preferredSize = table.computeSize(SWT.DEFAULT, SWT.DEFAULT); int width = area.width - 2*table.getBorderWidth(); if (preferredSize.y > area.height + table.getHeaderHeight()) { // Subtract the scrollbar width from the total column width // if a vertical scrollbar will be required Point vBarSize = table.getVerticalBar().getSize(); width -= vBarSize.x; } Point oldSize = table.getSize(); if (oldSize.x > area.width) { // table is getting smaller so make the columns // smaller first and then resize the table to // match the client area width column1.setWidth(width/3); column2.setWidth(width - column1.getWidth()); table.setSize(area.width, area.height); } else { // table is getting bigger so make the table // bigger first and then make the columns wider // to match the client area width table.setSize(area.width, area.height); column1.setWidth(width/3); column2.setWidth(width - column1.getWidth()); } } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
效果图:
上面表格可以随着窗口的大小变化一起变化。
总结:现在看这个程序非常的简单,当时记得一开始想实现这个功能的时候找了半天,老是觉得是不是可以设置一个table的什么参数,就能够自适应了。其实,这里就是没有看清问题的本质,要实现的就是要当窗口变化时,改变table的布局就行,这样就自然有了上面的方法注册窗口或composite的变化就行了。
发表评论
-
定制tooltip
2013-10-06 18:17 751public class HelloToolTip { ... -
java SWT StackLayout
2013-09-16 17:40 864public class UsingStackLayout ... -
JFace snippet
2013-01-31 11:00 1416附件有org.eclipse.jface.snippets, ... -
SWT 中Button和Label重叠放置
2011-12-30 17:18 2716写了一个小例子: public class Snipp ... -
SWT DND的Snippet 和 剪贴板
2011-11-15 19:50 2266链接:http://www.eclipse.org/swt/s ... -
display.getSystemColor 中的颜色
2011-10-28 20:41 1274记得以前好像记录过,就是找不到了。 public c ... -
SWT程序需要导入的jar
2011-10-12 18:04 11901,org.eclipse.swt.win32.x86_xxx ... -
用滚动的字符表示Task的运行,比较ProgressMonitorDialog
2011-08-16 17:55 3231JFace中的提供的ProgressMonitorDialog ... -
SWT 的对话框模式与非模式
2011-05-24 16:03 1998关键字:SWT 对话框 模式 非模式 SWT.MODELESS ... -
Java SWT SWTChart坐标图
2010-12-13 14:02 4551关键字: SWTChart 坐标图 链接:http://w ... -
java.lang.NoClassDefFoundError: com/ibm/icu/text/BreakIterator
2010-11-25 14:00 3224关键字:java.lang.NoClassDefFoundE ... -
类似百度和谷歌那样的自动提示组合框
2010-09-30 14:04 1380问题:http://www.iteye.com/problem ... -
一个日历程序 可农历到公历 公历到农历 第几周 显示节气
2010-07-02 20:01 2628public class Sample3 { privat ... -
一个简单的时钟程序
2010-07-02 19:24 1132public class Sample2 { privat ... -
Image中的transformation理解【swt.snippet】
2010-07-02 17:48 1546/****************************** ... -
计分器
2010-07-02 17:28 1180代码: public class Sample1 { p ... -
SWT资料
2010-06-30 19:24 871SWT-jface一些例子: http://www.j ... -
事件管理器 4个象限【还没有完成】
2010-06-23 17:12 11831,改完成了一个大概的样子,还要把Text改成List,可以添 ... -
利用SWT内部的图标
2010-06-23 16:55 2950import org.eclipse.swt.SWT; im ... -
SWT 浏览器
2010-06-23 16:48 2805这个来自书上的一个例子: package firstSWT ...
相关推荐
这通常通过SWT的布局管理器实现,如GridLayout或FillLayout,它们能够帮助控件适应容器的大小变化。 4. 滚动条:当图片列表超出视口范围时,添加滚动条可以让用户浏览不可见的部分。在SWT中,可以使用...
4. ** MigLayout **:MigLayout是一个第三方布局管理器,它提供了更高级的功能,如复杂的约束条件、自动对齐、表格布局等。在SWT中,可以通过JFace的`GridLayoutFactory`或者直接使用MigLayout的API来实现。 5. **...
3. **数据绑定**:JFace 的数据绑定功能可以将模型数据与界面控件自动关联,当数据变化时,界面会自动更新;反之,用户在界面上的更改也会反映到数据模型中。这大大简化了数据驱动界面的实现。 4. **视图和编辑器**...
2. **设置表列**: 使用`TableViewerColumn`来定义表格的列,可以通过`setLabelProvider`设置列头文本,通过`setCellModifier`设置单元格编辑器等。 3. **绑定数据模型**: `tableViewer.setInput(data)`用于设置表格...
然后根据所使用的Eclipse版本,找到对应的SWT库文件(例如`org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar`),其中的版本号会随Eclipse版本的变化而变化。 - **库文件解压**:使用`jar xf org.eclipse.swt.win32...
创建`CheckBoxCellEditor`时,通常需要指定它的父控件(通常是表格的列)以及其初始状态(默认是否选中)。 在`MyCheckboxCellEditor.java`中,我们可能会看到以下关键步骤: 1. **初始化**:创建`...
在 Eclipse SWT(Standard Widget Toolkit)中,`Table` 控件提供了显示数据列表的功能。然而,默认情况下,`Table` 是只读的,不允许用户进行编辑。为了使 `Table` 可编辑,SWT 提供了 `TableEditor` 类,它可以在 ...
1. **创建TableViewer实例**:首先需要创建TableViewer实例,并将其绑定到SWT.Table控件上。 2. **设置内容器**:定义一个内容器,该内容器负责管理TableViewer的数据模型。 3. **设置标签器**:通过标签器来指定每...
JFace Viewer遵循观察者模式,当数据模型发生变化时,Viewer会自动更新界面,保持与数据同步。这种特性使得开发者无需关心界面刷新的问题,只需关注数据的变动。 **5. 排序与过滤** JFace Viewer提供了内置的排序和...