package test01;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class TestDialog {
Display display = new Display();
Shell shell;
static Button btn;
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("shell");
shell.setBounds(100, 100, 500, 500);
shell.open();
final MyDialog dialog = new MyDialog(shell);
Button bt = new Button(shell, SWT.None);
bt.setBounds(200, 50, 100, 50);
bt.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dialog.open();
// btn = dialog.getButton(IDialogConstants.OK_ID);
// btn.setEnabled(false);//让按钮失效
}
});
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static final class MyDialog extends Dialog {
protected MyDialog(Shell shell) {
super(shell);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite comp = new Composite(parent, SWT.None);
comp.setLayout(new GridLayout());
new Label(comp, SWT.None).setText("fdsg");
;
new Text(comp, SWT.None);
return super.createDialogArea(parent);
}
@Override
protected Button createButton(Composite parent, int id, String label,
boolean defaultButton) {
// return super.createButton(parent, id, label, defaultButton);
return null;// 重写父类的按钮,返回null,使默认按钮失效
}
/**
* 改写默认的OK、cancel按钮
*/
@Override
protected void initializeBounds() {
Composite compo = (Composite) getButtonBar();
super.createButton(compo, IDialogConstants.OK_ID, "OK", false);
super.createButton(compo, IDialogConstants.NO_ID, "NO", false);
super.initializeBounds();
}
@Override
protected Point getInitialSize() {
return new Point(300, 200);// 重新设置大小
}
@Override
protected Button getButton(int id) {
// TODO 自动生成的方法存根
return super.getButton(id);
}
}
}
SWT的自定义Dialog
最新推荐文章于 2021-10-21 15:47:33 发布