0 0

如何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个答案 按时间排序 按投票排序

0 0

采纳的答案

建议 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
0 0

解答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
0 0

解答1:

TitleAreaDialog 不能将关闭按钮置灰,

就算你的shell 的style 是: SWT.TITLE | SWT.MIN | SWT.MAX
看起来好像没有SWT.CLOSE, 只有存在上面三个style中的一个,这个窗口就有关闭按钮.

2008年6月28日 14:12

相关推荐

    org.eclipse.jface.rar

    "org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个用于构建用户界面(UI)的高级Java框架,它是Eclipse平台的重要组成部分,主要设计目的是简化Swing和AWT等...

    Eclipse SWT/JFace 书中 全部实例

    Eclipse SWT(Standard Widget Toolkit)和JFace是用于构建Java GUI应用程序的强大工具,它们与Eclipse IDE紧密集成,提供了一套丰富的控件和抽象层,使得开发者能够创建出功能丰富的桌面应用。本压缩包包含的"全部...

    eclipse与MyEclipse代码提示上屏修改后jar包(org.eclipse.jface.text_3.8.101.v20130802-1147)

    标题提及的"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

    标题中的"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 eclipse Jface API

    SWT (Standard Widget Toolkit)、Eclipse 和 JFace 是Java编程中用于开发图形用户界面(GUI)的重要工具包。它们都是由Eclipse基金会维护并广泛应用于各种桌面应用程序的开发。 SWT 是一个开源的GUI库,它为Java...

    搭建Eclipse JFace SWT 工作环境

    JFace SWT 开发,搭建windowbuilder的开发环境。里面有swt.jar 和windowbuilder的压缩包。并且附有小测试例子。基于Eclipse SWT/JFace这本书所有的源代码。都在一起。供大家学习工作使用。

    org.eclipse.jface.snippets

    9. **国际化和本地化**:JFace支持应用程序的国际化和本地化,`Snippets`中包含了如何使用`ResourceBundle`和`NLS`类进行字符串的本地化处理。 通过深入学习和实践`org.eclipse.jface.snippets`中的代码,开发者...

    eclipse jface

    在"**CSE115-Lab10**"这个文件中,可能包含了使用Eclipse JFace进行实践的实验室作业,涵盖了如何使用JFace创建视图、编辑器、对话框等内容,旨在帮助学生掌握JFace的使用技巧,进一步提升其在Java GUI开发中的能力...

    org.eclipse.jface.text_3.12.2.v20180112-1341.zip

    标题中的"org.eclipse.jface.text_3.12.2.v20180112-1341.zip"是Eclipse插件的一个版本,它专注于文本编辑功能。Eclipse是一个开源的集成开发环境(IDE),而JFace是Eclipse的一部分,提供了面向用户的界面组件。...

    Eclipse SWT/JFace 核心应用的全部源代码

    JFace包括数据绑定、视图管理、对话框和服务等组件,它将许多复杂的SWT操作进行了封装,例如表格和树的数据模型、表单编辑器等。通过研究JFace的源代码,开发者可以学习到如何优雅地组织用户界面,提高代码的可读性...

    eclipse的jface功能练习

    标题中的“eclipse的jface功能练习”表明我们即将探讨的是使用Eclipse集成开发环境(IDE)中的JFace库进行图形用户界面(GUI)编程的一个实践项目。JFace是Java SWT(Standard Widget Toolkit)的一部分,提供了更高...

    Eclipse SWT/Jface环境设置 DOC文件

    Eclipse SWT(Standard Widget Toolkit)和JFace是Java开发中用于构建图形用户界面(GUI)的库,尤其在开发Eclipse插件或RCP(Rich Client Platform)应用时非常常见。SWT是Eclipse项目的一个核心组件,它提供了一套...

    org.eclipse.jface.text_3.8.2.v20121126-164145源码

    Eclipse JFace中的Text模块主要负责处理文本输入和编辑,包括文本视图、文本模型、文本编辑器等组件。这个版本的源码经过了修改,取消了默认的特定字符("="、空格、"."和" ")的自动补全功能,并新增了对制表符...

    org.eclipse.jface.swt.API

    SWT API包含了各种基本的UI组件,如按钮、文本框、表格等,以及布局管理器、颜色、字体、事件处理等。开发者可以使用这些组件来构建复杂的窗口应用。例如,`Shell`类是所有SWT窗口的基础,而`Composite`类则作为容器...

    eclipse swt/jface 核心应用源码

    Eclipse SWT/JFace 是 Eclipse 开发平台中的两个关键组件,用于构建用户界面。SWT(Standard Widget Toolkit)是 Java 平台上的一个图形用户界面(GUI)库,它提供了与操作系统底层更紧密的集成,使得应用程序可以...

    JFace的源码,从官网下的

    JFace是Eclipse框架中的一个重要组成部分,主要用于提供面向用户的界面组件和数据抽象,使得开发者能够构建更加简洁、可维护的图形用户界面(GUI)。JFace的源码分析可以帮助我们深入理解其内部工作原理,提高开发...

    eclipse_4.7.3a,eclipse/plugins里面的org.eclipse.jface.text,按“=”和空格以后不会自动补完代码

    eclipse_4.7.3a,eclipse/plugins里面的org.eclipse.jface.text,按“=”和空格以后不会自动补完代码,防止eclipse过于的智能

    SWT/JFace官方实例

    SWT (Standard Widget Toolkit) 和 JFace 是 Eclipse 开发平台中的两个重要组件,主要用于构建图形用户界面(GUI)。它们是 Java 语言中的 GUI 工具包,为开发者提供了丰富的控件和高级界面功能。 SWT 是一个直接与...

    org.eclipse.jface.text_3.11.2.v20170220-1911最新修改版

    在Eclipse中,文本编辑器是核心组件之一,它负责处理各种源代码的输入和显示。org.eclipse.jface.text模块是Eclipse中的一个关键部分,专门负责文本编辑相关的功能。本文将深入探讨Eclipse JFace Text的最新修改版...

Global site tag (gtag.js) - Google Analytics