请帮忙看下这程序,急!!!!!!!

esadcl 2012-05-22 05:26:36
这程序是swt编写的,请帮忙看下为什么在第二次点击按钮时group中的控件会消失
哪里有问题,请帮忙修改下


package com.tree;


import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormAttachment;


public class tes {

protected Shell shell;
private Text text;
private Text text_1;
private Text text_2;
private Text text_3;
private Text text_4;
private Text text_5;
private Text text_6;
private Text text_7;
private Group group;

/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
tes window = new tes();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}

/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(450, 482);
shell.setText("SWT Application");
shell.setLayout(new FormLayout());

final TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
FormData fd_tabFolder = new FormData();
fd_tabFolder.bottom = new FormAttachment(0, 166);
fd_tabFolder.right = new FormAttachment(0, 385);
fd_tabFolder.top = new FormAttachment(0, 10);
fd_tabFolder.left = new FormAttachment(0, 10);
tabFolder.setLayoutData(fd_tabFolder);

TabItem tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setText("New Item");

Composite composite_2 = new Composite(tabFolder, SWT.NONE);
tbtmNewItem.setControl(composite_2);

text = new Text(composite_2, SWT.BORDER);
text.setBounds(10, 10, 70, 18);

text_1 = new Text(composite_2, SWT.BORDER);
text_1.setBounds(121, 10, 70, 18);

text_2 = new Text(composite_2, SWT.BORDER);
text_2.setBounds(10, 44, 70, 18);

text_3 = new Text(composite_2, SWT.BORDER);
text_3.setBounds(121, 44, 70, 18);

TabItem tbtmNewItem_1 = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem_1.setText("New Item");

Composite composite = new Composite(tabFolder, SWT.NONE);
tbtmNewItem_1.setControl(composite);

text_4 = new Text(composite, SWT.BORDER);
text_4.setBounds(10, 23, 70, 18);

text_5 = new Text(composite, SWT.BORDER);
text_5.setBounds(128, 23, 70, 18);

TabItem tbtmNewItem_2 = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem_2.setText("New Item");

Composite composite_1 = new Composite(tabFolder, SWT.NONE);
tbtmNewItem_2.setControl(composite_1);

text_6 = new Text(composite_1, SWT.BORDER);
text_6.setBounds(22, 20, 70, 18);

text_7 = new Text(composite_1, SWT.BORDER);
text_7.setBounds(128, 20, 70, 18);

Button btnNewButton = new Button(shell, SWT.NONE);
FormData fd_btnNewButton = new FormData();
fd_btnNewButton.top = new FormAttachment(0, 189);
fd_btnNewButton.left = new FormAttachment(0, 54);
btnNewButton.setLayoutData(fd_btnNewButton);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
TabItem[] item=tabFolder.getSelection();
TabItem it=item[0];
Composite cop=(Composite)it.getControl();
// for(Control c: cop.getChildren()){
// if(c instanceof Text){
// Text textField = (Text)c;
// // System.out.println(textField.getText());
//
// }
// }

for(Control c: group.getChildren()){
if(c instanceof Text){
Text textField = (Text)c;

textField.dispose();

}
}
group.setLayout(new GridLayout((int)Math.sqrt(cop.getChildren().length), false));
for(int i=0;i<(int)Math.sqrt(cop.getChildren().length);i++)
{
Text text=new Text(group,SWT.BORDER);
// text.setText("1 ");
// System.out.println("生成");
//
}
group.pack();
}
});
btnNewButton.setText("New Button");

Composite composite_3 = new Composite(shell, SWT.NONE);
FormData fd_composite_3 = new FormData();
fd_composite_3.bottom = new FormAttachment(0, 385);
fd_composite_3.right = new FormAttachment(0, 385);
fd_composite_3.top = new FormAttachment(0, 278);
fd_composite_3.left = new FormAttachment(0, 10);
composite_3.setLayoutData(fd_composite_3);
composite_3.setLayout(new FormLayout());

group = new Group(composite_3, SWT.NONE);
FormData fd_group = new FormData();
fd_group.bottom = new FormAttachment(0, 89);
fd_group.right = new FormAttachment(0, 348);
fd_group.top = new FormAttachment(0, 10);
fd_group.left = new FormAttachment(0, 10);
group.setLayoutData(fd_group);
group.setText("\u7ED3\u679C");




}
}
...全文
158 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
esadcl 2012-05-22
  • 打赏
  • 举报
回复
你拿去跑下就行了,这个程序很简单,问题可能在group.pack()那点,我不是很清楚,所以请高手帮帮忙
告白气球 2012-05-22
  • 打赏
  • 举报
回复
天呢 LZ应该放重点!
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧