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 发布
本文介绍了一个使用Eclipse SWT库创建自定义对话框的Java示例。该示例展示了如何通过覆盖默认按钮、调整对话框尺寸及响应按钮点击事件来实现对话框的定制。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
722

被折叠的 条评论
为什么被折叠?



