-
如何eclipse jface组件中TitleAreaDialog对话框上方的关闭按钮进行置灰处理5
描述如下:
第一个对话框:名称为A (TDialog.java)
第二个对关闭按钮进行隐藏后的对话框:名称为B (TDialog1.java)
原本想用隐藏就可以解决问题的。
描述:点击 A中按钮,弹出B
存在的问题:点击A中按钮,弹出B 但是用鼠标点击B时,B就自动隐藏了,没法进行操作。最小化eclipse后,桌面上显示 B对话框,并且可以对其进行操作。(代码见附件,demo不存在此问题)所以我想要对关闭按钮进行置灰处理,不知道这样处理后能不能变通解决对上述问题。或者有什么更好的方法进行处理?demo代码如下:
另外:怎样对B的消息区设置提示信息 【 setMessage("Hello World!");//这样会报错】
package test;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TDialog extends TitleAreaDialog {
public TDialog(Shell parentShell) {
super(parentShell);
}
public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(327, 253);
Button button = new Button(shell, SWT.NONE);
button.setBounds(18, 20, 153, 25);
button.setText("button");
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
TDialog1 tDialog = new TDialog1(shell);
tDialog.open();
}
});
shell.layout();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
package test;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class TDialog1 extends TitleAreaDialog {
final Display display = Display.getDefault();
final Shell shell = new Shell();
public TDialog1(Shell parentShell) {
super(parentShell);
//setMessage("Hello World!");//怎样set message?
}
@Override
protected int getShellStyle() {
return SWT.TITLE;// 隐藏关闭按钮,置灰时不需要这个方法
}
}
2008年6月26日 16:53
3个答案 按时间排序 按投票排序
-
采纳的答案
建议 1:
TitleAreaDialog不是这么用的,其实,TitleAreaDialog是一个已经被封装完后的控件,它有一定固定的使用模式.
public class TDialog extends TitleAreaDialog { public TDialog(Shell parentShell) { super(parentShell); } // JFACE的Dialog你完全不用自己去定义Shell, 只有SWT的Dialog才需要. protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite container = new Composite(area, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); final Button button = new Button(container, SWT.NONE); button.setText("button"); button.setBounds(26, 28, 44, 23); button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TDialog1 tDialog = new TDialog1(Display.getCurrent().getActiveShell()); tDialog.open(); } }); return area; } protected void createButtonsForButtonBar(Composite parent) { createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); } protected Point getInitialSize() { return new Point(500, 375); } }
2008年6月28日 14:25
-
解答2:
引用B就自动隐藏了,没法进行操作
是,你设置B dialog的style不对.
public class TDialog1 extends TitleAreaDialog { public TDialog1(Shell parentShell) { super(parentShell); this.setShellStyle(SWT.APPLICATION_MODAL | SWT.TITLE); } }
2008年6月28日 14:23
-
解答1:
TitleAreaDialog 不能将关闭按钮置灰,
就算你的shell 的style 是: SWT.TITLE | SWT.MIN | SWT.MAX
看起来好像没有SWT.CLOSE, 只有存在上面三个style中的一个,这个窗口就有关闭按钮.2008年6月28日 14:12
相关推荐
"org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个用于构建用户界面(UI)的高级Java框架,它是Eclipse平台的重要组成部分,主要设计目的是简化Swing和AWT等...
Eclipse SWT(Standard Widget Toolkit)和JFace是用于构建Java GUI应用程序的强大工具,它们与Eclipse IDE紧密集成,提供了一套丰富的控件和抽象层,使得开发者能够创建出功能丰富的桌面应用。本压缩包包含的"全部...
标题提及的"org.eclipse.jface.text_3.8.101.v20130802-1147"是Eclipse中的一个关键组件,它负责文本编辑器的相关功能,包括代码提示。 `org.eclipse.jface.text`是Eclipse JFace库的一部分,JFace是构建用户界面的...
标题中的"org.eclipse.jface.text_3.12.2.v20180112-1341.jar"是一个具体的Java库文件,属于Eclipse JFace Text组件的版本3.12.2,发布于2018年1月12日。Eclipse JFace Text是Eclipse IDE中的一个核心组件,它提供了...
SWT (Standard Widget Toolkit)、Eclipse 和 JFace 是Java编程中用于开发图形用户界面(GUI)的重要工具包。它们都是由Eclipse基金会维护并广泛应用于各种桌面应用程序的开发。 SWT 是一个开源的GUI库,它为Java...
JFace SWT 开发,搭建windowbuilder的开发环境。里面有swt.jar 和windowbuilder的压缩包。并且附有小测试例子。基于Eclipse SWT/JFace这本书所有的源代码。都在一起。供大家学习工作使用。
9. **国际化和本地化**:JFace支持应用程序的国际化和本地化,`Snippets`中包含了如何使用`ResourceBundle`和`NLS`类进行字符串的本地化处理。 通过深入学习和实践`org.eclipse.jface.snippets`中的代码,开发者...
在"**CSE115-Lab10**"这个文件中,可能包含了使用Eclipse JFace进行实践的实验室作业,涵盖了如何使用JFace创建视图、编辑器、对话框等内容,旨在帮助学生掌握JFace的使用技巧,进一步提升其在Java GUI开发中的能力...
标题中的"org.eclipse.jface.text_3.12.2.v20180112-1341.zip"是Eclipse插件的一个版本,它专注于文本编辑功能。Eclipse是一个开源的集成开发环境(IDE),而JFace是Eclipse的一部分,提供了面向用户的界面组件。...
JFace包括数据绑定、视图管理、对话框和服务等组件,它将许多复杂的SWT操作进行了封装,例如表格和树的数据模型、表单编辑器等。通过研究JFace的源代码,开发者可以学习到如何优雅地组织用户界面,提高代码的可读性...
标题中的“eclipse的jface功能练习”表明我们即将探讨的是使用Eclipse集成开发环境(IDE)中的JFace库进行图形用户界面(GUI)编程的一个实践项目。JFace是Java SWT(Standard Widget Toolkit)的一部分,提供了更高...
Eclipse SWT(Standard Widget Toolkit)和JFace是Java开发中用于构建图形用户界面(GUI)的库,尤其在开发Eclipse插件或RCP(Rich Client Platform)应用时非常常见。SWT是Eclipse项目的一个核心组件,它提供了一套...
Eclipse JFace中的Text模块主要负责处理文本输入和编辑,包括文本视图、文本模型、文本编辑器等组件。这个版本的源码经过了修改,取消了默认的特定字符("="、空格、"."和" ")的自动补全功能,并新增了对制表符...
SWT API包含了各种基本的UI组件,如按钮、文本框、表格等,以及布局管理器、颜色、字体、事件处理等。开发者可以使用这些组件来构建复杂的窗口应用。例如,`Shell`类是所有SWT窗口的基础,而`Composite`类则作为容器...
Eclipse SWT/JFace 是 Eclipse 开发平台中的两个关键组件,用于构建用户界面。SWT(Standard Widget Toolkit)是 Java 平台上的一个图形用户界面(GUI)库,它提供了与操作系统底层更紧密的集成,使得应用程序可以...
JFace是Eclipse框架中的一个重要组成部分,主要用于提供面向用户的界面组件和数据抽象,使得开发者能够构建更加简洁、可维护的图形用户界面(GUI)。JFace的源码分析可以帮助我们深入理解其内部工作原理,提高开发...
eclipse_4.7.3a,eclipse/plugins里面的org.eclipse.jface.text,按“=”和空格以后不会自动补完代码,防止eclipse过于的智能
SWT (Standard Widget Toolkit) 和 JFace 是 Eclipse 开发平台中的两个重要组件,主要用于构建图形用户界面(GUI)。它们是 Java 语言中的 GUI 工具包,为开发者提供了丰富的控件和高级界面功能。 SWT 是一个直接与...
在Eclipse中,文本编辑器是核心组件之一,它负责处理各种源代码的输入和显示。org.eclipse.jface.text模块是Eclipse中的一个关键部分,专门负责文本编辑相关的功能。本文将深入探讨Eclipse JFace Text的最新修改版...