package cn.com.chengang.swt;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class ScrolledComposite1 {
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
// ---------创建窗口中的其他界面组件-------------
// 定义一个ScrolledComposite,式样为深陷型、带水平滚动条、带垂直滚动条
ScrolledComposite scrolledComposite = new ScrolledComposite(shell,
SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setBounds(12, 6, 256, 148);
// 定义一个面板Composite,用此面板来容纳其他的组件
Composite composite = new Composite(scrolledComposite, SWT.NONE);
// 这里没用setBounds是因为composite和scrolledComposite的左上角自动重合
composite.setSize(326, 237);// 设置composite面板的大小
scrolledComposite.setContent(composite);// 设置composite被scrolledComposite控制
// 建立八个文本框,以横二竖四排列。这里将Text的定义和Text的定位两个语句合写在了一起
new Text(composite, SWT.BORDER).setBounds(12, 13, 132, 40);
new Text(composite, SWT.BORDER).setBounds(155, 13, 132, 40);
new Text(composite, SWT.BORDER).setBounds(10, 70, 132, 40);
new Text(composite, SWT.BORDER).setBounds(155, 70, 132, 40);
new Text(composite, SWT.BORDER).setBounds(10, 120, 132, 40);
new Text(composite, SWT.BORDER).setBounds(155, 120, 132, 40);
new Text(composite, SWT.BORDER).setBounds(10, 170, 132, 40);
new Text(composite, SWT.BORDER).setBounds(156, 171, 132, 40);
// -----------------END------------------------
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
<--------------------2-------------------->
public static void main(String[] args) {
Display display = new Display();
Color red = display.getSystemColor(SWT.COLOR_RED);
Color blue = display.getSystemColor(SWT.COLOR_BLUE);
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
// set the size of the scrolled content - method 1
final ScrolledComposite sc1 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
final Composite c1 = new Composite(sc1, SWT.NONE);
sc1.setContent(c1);
c1.setBackground(red);
GridLayout layout = new GridLayout();
layout.numColumns = 4;
c1.setLayout(layout);
Button b1 = new Button(c1, SWT.PUSH);
b1.setText("first button");
c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
// set the minimum width and height of the scrolled content - method 2
final ScrolledComposite sc2 = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
sc2.setExpandHorizontal(true);
sc2.setExpandVertical(true);
final Composite c2 = new Composite(sc2, SWT.NONE);
sc2.setContent(c2);
c2.setBackground(blue);
layout = new GridLayout();
layout.numColumns = 4;
c2.setLayout(layout);
Button b2 = new Button(c2, SWT.PUSH);
b2.setText("first button");
sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
Button add = new Button(shell, SWT.PUSH);
add.setText("add children");
final int[] index = new int[] { 0 };
add.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
index[0]++;
Button button = new Button(c1, SWT.PUSH);
button.setText("button " + index[0]);
// reset size of content so children can be seen - method 1
c1.setSize(c1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c1.layout();
button = new Button(c2, SWT.PUSH);
button.setText("button " + index[0]);
// reset the minimum width and height so children can be seen - method 2
sc2.setMinSize(c2.computeSize(SWT.DEFAULT, SWT.DEFAULT));
c2.layout();
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
<----------------------3------------------------>
如果是 FormLayout composite1Layout = new FormLayout();
composite1.setLayout(composite1Layout);
如果设置了FormLayout ,那么上面的控件也需要设置为FormLayout。否则就将无法显示。
无法显示的情况
cTabItem2 = new CTabItem(cTabFolder1, SWT.NONE);
cTabItem2.setText("Method Comment");
{
composite6 = new Composite(cTabFolder1, SWT.NONE);
FormLayout composite6Layout = new FormLayout();
composite6.setLayout(composite6Layout);
cTabItem2.setControl(composite6);
{
scrolledComposite1 = new ScrolledComposite(composite6, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
FormData scrolledComposite1LData = new FormData(); // *关键在此
scrolledComposite1LData.width = 539;
scrolledComposite1LData.height = 215;
scrolledComposite1LData.left = new FormAttachment(0, 1000, 2);
scrolledComposite1LData.top = new FormAttachment(0, 1000, 2);
scrolledComposite1.setLayoutData(scrolledComposite1LData);
{
composite7 = new Composite(scrolledComposite1, SWT.NONE);
scrolledComposite1.setContent(composite7);
composite7.setBounds(0, 0, 560, 303);
{
label6 = new Label(composite7, SWT.NONE);
label6.setText("Method Name:");
label6.setBounds(35, 30, 160, 20);
label6.setFont(SWTResourceManager.getFont("宋体", 12, 0, false, false));
}
{
text6 = new Text(composite7, SWT.BORDER);
text6.setText("text6");
text6.setBounds(200, 60, 220, 20);
text6.setFont(SWTResourceManager.getFont("宋体", 12, 0, false, false));
}
{
button3 = new Button(composite7, SWT.PUSH | SWT.CENTER);
button3.setText("Seek..");
button3.setBounds(439, 66, 53, 23);
}
}
}
}
分享到:
相关推荐
要实现JFreeChart图表与SWT滚动条的交互,首先需要创建一个SWT Composite(复合组件),在这个组件上放置JFreeChart的ChartComposite。ChartComposite是JFreeChart提供的一种特殊组件,可以直接在 SWT 应用程序中...
SWT提供了丰富的组件,包括按钮、文本框、滚动条、树形视图、表格、菜单等,这些组件都可以在64位Windows系统上原生渲染。此外,SWT还支持事件处理、布局管理以及对话框等特性,使得开发者可以方便地构建复杂的用户...
Jfreechart提供的SWT接口,并不支持滚动条,本资源实现了这个方法
ScrolledComposite自动出现最适合大小的滚动条代码
2. SWT组件:SWT包含各种常见的GUI组件,如按钮(Button)、文本框(Text)、滚动条(Scrollbar)、列表(List)、树(Tree)等,以及布局管理器如FillLayout、GridLayout、 MigLayout等,用于控制组件的排列和大小。...
SWT的名字来源于它提供的基本组件,即标准小部件工具包,这些组件包括按钮、文本框、滚动条等,类似于其他GUI工具包如Java Swing。SWT的特性在于它直接与操作系统进行交互,而不是通过Java AWT(Abstract Window ...
SWT库的核心在于提供了一组与操作系统紧密集成的组件,包括按钮、文本框、滚动条等,这些组件的外观和行为与操作系统自身的控件一致。这使得基于SWT开发的应用程序在不同的操作系统上运行时,能够保持一致的用户界面...
1. **SWT组件**:SWT提供了各种组件,如按钮、文本框、列表、树视图、滚动条等,这些组件直接映射到操作系统提供的原生控件,因此具有更好的性能和外观。例如,`Shell`类代表顶级窗口,`Composite`类作为容器可以...
1. **Widget**: SWT中的Widget是UI元素的基本单位,包括按钮、文本框、滚动条等。每个Widget都有自己的事件处理机制,可以通过监听器接口来响应用户的操作。 2. **Display**: Display是SWT中的顶级对象,它是所有...
在构建视频播放器时,SWT提供了许多基础组件,如按钮、文本框、滚动条等,但这些组件并不包含直接处理视频流的能力。因此,要实现视频播放功能,开发人员通常会结合其他多媒体库,如JMF(Java Media Framework)或者...
SWT提供了垂直和水平滚动条,可以根据需要添加到任何可滚动的组件中。 5. **分割线(Splitter)**:在界面上划分两个或更多区域,可以使用分割线。通过调整分割线的位置,用户可以改变各个区域的大小,提高界面的...
- **SWT.V_SCROLL/SWT.H_SCROLL**:垂直/水平滚动条。 #### 4. 下拉框组件(Combo) **Combo常见样式** - **SWT.NONE**:默认样式。 - **SWT.READ_ONLY**:只读模式,不能编辑文本。 - **SWT.SIMPLE**:无需点击...
SWT支持水平和垂直滚动条,可以与各种组件结合使用。 7. **基本逻辑运算**:SWT控件之间可以进行交互,实现更复杂的逻辑操作。例如,按钮的点击可能触发文本框的验证,或者根据树或列表的选择改变其他组件的状态。 ...
使用SWT,开发者可以创建丰富的桌面应用程序,包括菜单、按钮、文本框、滚动条等各种控件,以及对话框、布局管理器等高级功能。由于SWT是Eclipse IDE的一部分,因此在Eclipse中开发SWT应用特别方便,拥有强大的调试...
SWT控件包括按钮、文本框、列表、表格、树形视图、滚动条、菜单等基本元素,以及更复杂的如日历、颜色选择器等。SWT的优势在于它能充分利用操作系统的图形资源,避免了Java AWT或Swing中常见的“Java Look and Feel...
这里的`SWT.MULTI`表示允许选择多个项,`SWT.H_SCROLL`和`SWT.V_SCROLL`分别表示开启水平和垂直滚动条。 4. **添加TreeItem** TreeItem代表Tree中的每一行数据,可以这样创建并添加: ```java TreeItem ...
7. `org.eclipse.swt_3.3.2.v3347.jar`:SWT库本身,提供了基本的GUI组件,如按钮、文本框和滚动条,以及窗口管理、事件处理等功能。 这些库文件组合在一起,为开发者提供了构建强大、可扩展且跨平台的Java GUI应用...
Swt API提供了多种控件,如按钮(Button)、文本框(Text)、列表(List)、组合框(Combo)、滚动条(ScrollBar)等,这些控件与各个操作系统平台的原生控件保持一致,提供更好的用户体验。例如,`Button`类用于...
1. **控件(Widgets)**:如按钮(Button)、文本框(Text)、列表(List)、树(Tree)、滚动条(ScrollBar)等,这些控件提供了丰富的事件处理机制。 2. **布局管理(Layouts)**:如FillLayout、GridLayout、 ...