Composite、GridLayout、Label、Group、CLabel等swt控件的使用

这篇文章主要介绍了Composite、GridLayout、Label、Group、CLabel等swt控件的使用,案例执行效果如下。

运行效果:

Composite、GridLayout、Label、Group、CLabel等swt控件的使用

java代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

package swt;

 

import org.eclipse.swt.SWT;

import org.eclipse.swt.custom.CLabel;

import org.eclipse.swt.custom.ScrolledComposite;

import org.eclipse.swt.graphics.Image;

import org.eclipse.swt.graphics.Point;

import org.eclipse.swt.layout.FillLayout;

import org.eclipse.swt.layout.GridLayout;

import org.eclipse.swt.layout.RowData;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Group;

import org.eclipse.swt.widgets.Label;

import org.eclipse.swt.widgets.Layout;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

 

public class SwtWidgets_02 {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Display display=new Display();

        Shell topShell=new Shell(display,SWT.SHELL_TRIM|SWT.BORDER);

        topShell.setText("swt控件展示");

        topShell.setLayout(new FillLayout());

         

        ScrolledComposite sc=new 

          ScrolledComposite(topShell, SWT.H_SCROLL|SWT.V_SCROLL|SWT.BORDER);

//      sc.setExpandHorizontal(true);

//      sc.setExpandVertical(true);

//      sc.setMinHeight(0);

//      sc.setMinWidth(0);

        //相当于上面的两个

//      sc.setMinSize(new Point(800, 500));

         

        Composite composite=new Composite(sc, SWT.BORDER);

        GridLayout layout=new GridLayout();

        layout.numColumns=1;

        composite.setLayout(layout);

         

        Label label=new Label(composite, SWT.BORDER);

        label.setText("图片展示");

        Label label2=new Label(composite, SWT.CENTER);

        Image image=new Image(display, "zhu.png");

        //显示不完了,先注释掉

        label2.setImage(image);

         

        Label label3=new Label(composite, SWT.LEFT);

        label3.setText("普通按钮");

        //push为普通按钮

        Button button=new Button(composite, SWT.PUSH);

        button.setText("一个按钮");

        //单选按钮

        Label label4=new Label(composite, SWT.HORIZONTAL|SWT.SEPARATOR);

        Group group1=new Group(composite, SWT.SHADOW_ETCHED_OUT);

        //组不设置布局不显示。充满式布局

        FillLayout fillLayout=new FillLayout(SWT.HORIZONTAL);

        //各元素之间的像素

        fillLayout.spacing=20;

        //里边的元素距离该容器的上边

        fillLayout.marginHeight=50;

        fillLayout.marginWidth=100;

        group1.setLayout(fillLayout);

        group1.setText("单选按钮组");

        Button btn1=new Button(group1, SWT.RADIO|SWT.LEFT);

        btn1.setText("生");

        Button btn2=new Button(group1, SWT.RADIO|SWT.LEFT);

        btn2.setText("死");

        Button btn3=new Button(group1, SWT.RADIO|SWT.LEFT);

        btn3.setText("去死");

        //复选

        Label label6=new Label(composite, SWT.HORIZONTAL|SWT.SEPARATOR);

        Group group2=new Group(composite, SWT.SHADOW_ETCHED_OUT);

        //行布局对应rowdata,gridlayout对应griddata

        RowLayout rowLayout=new RowLayout();

        rowLayout.pack=true;//子控件大小不变

        rowLayout.wrap=true;//子控件可换行

        rowLayout.marginTop=50;

        rowLayout.justify=true;//根据父组件调整子组件

        group2.setLayout(rowLayout);

        group2.setText("复选按钮组");

        Button btn4=new Button(group2, SWT.CHECK|SWT.LEFT);

        btn4.setSelection(true);

        System.out.println(btn4.getSelection());

        btn4.setText("足球");

        btn4.setLayoutData(new RowData(100,100));

        Button btn5=new Button(group2, SWT.CHECK|SWT.LEFT);

        btn5.setText("蓝球");

        System.out.println(btn5.getSelection());

        Button btn6=new Button(group2, SWT.CHECK|SWT.LEFT);

        btn6.setText("红球");

        //箭头

        Label label8=new Label(composite, SWT.HORIZONTAL|SWT.SEPARATOR);

        Label label9=new Label(composite, SWT.LEFT);

        label9.setText("箭头按钮");

        Button btn7=new Button(composite, SWT.ARROW|SWT.UP);

        Button btn8=new Button(composite, SWT.ARROW|SWT.DOWN);

        Button btn9=new Button( composite,SWT.ARROW|SWT.LEFT);

        Button btn10=new Button(composite, SWT.ARROW|SWT.RIGHT);

         

        //既有图片又有文字的标签

        CLabel cLabel=new CLabel(composite, SWT.RIGHT);

        cLabel.setText("提示内容");

        cLabel.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

         

        //compoist是表格布局

        composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));

        sc.setContent(composite);

         

        topShell.open();

        while(!topShell.isDisposed()){

            if (!display.readAndDispatch()) {

                display.sleep();

            }

        }

        display.dispose();

    }

 

}