📄 mydialog.java
字号:
package cn.com.chengang.jface.dialog;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
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.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
//注意:JFace包和SWT包都有一个Dialog类,我们继承的是JFace的
public class MyDialog extends Dialog {
public MyDialog(Shell parentShell) {
super(parentShell);
}
// 在这个方法里构建Dialog中的界面内容
@Override
protected Control createDialogArea(Composite parent) {
// 建议不要直接在parent上创建组件,否则容易导致界面布局混乱。 应该象本例一样再叠加一个topComp面板,然后在此面板创建及布局
Composite topComp = new Composite(parent, SWT.NONE);
topComp.setLayout(new RowLayout());// 应用RowLayout面局
new Label(topComp, SWT.NONE).setText("请输入:");// 加入一个文本标签
Text text = new Text(topComp, SWT.BORDER);// 加入一个文本框
text.setLayoutData(new RowData(100, -1));// 用RowData来设置文本框的长度
return topComp;
}
// 改写父类Dialog的getShellStyle方法可以改变窗口的默认式样
@Override
protected int getShellStyle() {
// 用super.getShellStyle()得到原有式样,再附加上两个新式样
return super.getShellStyle() | SWT.RESIZE | SWT.MAX;
}
// 改写父类创建按钮的方法使其失效。参数parent:取得放置按钮的面板;参数id:定义按钮的ID值;
// 参数label:按钮文字;参数defaultButton:是否为Dialog的默认按钮。
protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
return null;
}
// 改写父类的initializeBounds方法,并调用父类的createButton方法建立按钮
public static final int APPLY_ID = 101; // 定义好“应用”按钮的ID值(整型常量)
protected void initializeBounds() {
Composite comp = (Composite) getButtonBar();// 取得按钮面板
super.createButton(comp, APPLY_ID, "应用", true);
super.createButton(comp, IDialogConstants.OK_ID, "真的", false);
super.createButton(comp, IDialogConstants.CANCEL_ID, "算了", false);
super.initializeBounds();
}
// 改变对话框大小为宽300,高400(单位:像素)
protected Point getInitialSize() {
return new Point(300, 400);// super.getInitialSize()可以得到原来对话框的大小
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -