SWT相关项目,无法再任务栏进行关闭,以及点击还原

时间:2021-06-01 22:21:04
我用SWT做的java桌面程序,实例化shell的时候用的SWT.NO_TRIM
代码如下:
shell = new Shell(SWT.NO_TRIM);

这样的话,在任务栏无法关闭程序。右键也是无法关闭。点击任务栏窗口图标也不能最大最小化,哪位有解决办法吗? 在线等,急

  

15 个解决方案

#1


为什么要用NO_TRIM呢。。

#2


做的ui界面需要撤掉边框 ,然后里面再进行重新设置,然后发现使用了no_trim之后任务栏那边就有问题了,监听shell也没用, 不晓得该怎么办 

#3


引用 1 楼 dollyn 的回复:
为什么要用NO_TRIM呢。。
做的ui界面需要撤掉shell的边框 ,然后里面再进行重新设置,然后发现使用了no_trim之后任务栏那边就有问题了,监听shell也没用, 不晓得该怎么办  

#4


NO_TRIM就是这样了,标题栏都没有了。 
不过任务栏无法关闭这个应该是因为你的SWT版本太低,实测3.6的是可以任务栏右键关闭的

#5


引用 4 楼 dollyn 的回复:
NO_TRIM就是这样了,标题栏都没有了。 
不过任务栏无法关闭这个应该是因为你的SWT版本太低,实测3.6的是可以任务栏右键关闭的
那如果不使用no_trim能否用其他方式来获得这张无标题无任何边框的shell窗口呢? 有什么实现方式 

#6


据我所知没有

#7


引用 6 楼 dollyn 的回复:
据我所知没有
那最小化后的任务栏点击还原问题呢,也实现不了,应该怎么去做?第一次发帖,不知道怎么贴代码,不好意思。

#8


新版的应该都没有问题,你换最新的swt试试

#9


引用 8 楼 dollyn 的回复:
新版的应该都没有问题,你换最新的swt试试
恩,好的,谢谢了

#10


引用 8 楼 dollyn 的回复:
新版的应该都没有问题,你换最新的swt试试
能不能多问个问题,为什么很多时候我使用shell.redraw()这个方法时基本是没用的,这是什么原因啊?谢谢了,新手~

#11


本帖最后由 dollyn 于 2014-07-14 12:54:44 编辑
这个。。。 猜不出来
不过你具体想做什么?

#12


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
界面上做了combo选项,加了中文跟English切换,点击的时候想实现中英文转换 combo.setItems(new String[] {"中文","english"});
combo.select(0);

combo.addModifyListener(new ModifyListener()
{
            
public void modifyText(ModifyEvent arg0) 
{
// bundle.clearCache(loader);
 //TODO
        if("Combo {english}".equals(arg0.getSource().toString()))
        {
         bundle = ResourceBundle.getBundle("language_en_US",Locale.ENGLISH); 
            System.out.println("EN");
            shell.redraw();
        }else
        {
            bundle = ResourceBundle.getBundle("language_zh_CN",Locale.CHINESE);
            System.out.println("CH");
            shell.redraw();
        }
}
});

#13


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
点击没用啊,我自己是想点击界面可以切换的,能想到的办法就是用shell去刷新了,可是没有效果啊

#14


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
能加个扣扣向你请教么,谢谢了

#15


redraw本来也不是干这个用的,界面上文字改变,必须要你自己用代码重设,比如text就必须你调用text.setText()这样才会有效果

#1


为什么要用NO_TRIM呢。。

#2


做的ui界面需要撤掉边框 ,然后里面再进行重新设置,然后发现使用了no_trim之后任务栏那边就有问题了,监听shell也没用, 不晓得该怎么办 

#3


引用 1 楼 dollyn 的回复:
为什么要用NO_TRIM呢。。
做的ui界面需要撤掉shell的边框 ,然后里面再进行重新设置,然后发现使用了no_trim之后任务栏那边就有问题了,监听shell也没用, 不晓得该怎么办  

#4


NO_TRIM就是这样了,标题栏都没有了。 
不过任务栏无法关闭这个应该是因为你的SWT版本太低,实测3.6的是可以任务栏右键关闭的

#5


引用 4 楼 dollyn 的回复:
NO_TRIM就是这样了,标题栏都没有了。 
不过任务栏无法关闭这个应该是因为你的SWT版本太低,实测3.6的是可以任务栏右键关闭的
那如果不使用no_trim能否用其他方式来获得这张无标题无任何边框的shell窗口呢? 有什么实现方式 

#6


据我所知没有

#7


引用 6 楼 dollyn 的回复:
据我所知没有
那最小化后的任务栏点击还原问题呢,也实现不了,应该怎么去做?第一次发帖,不知道怎么贴代码,不好意思。

#8


新版的应该都没有问题,你换最新的swt试试

#9


引用 8 楼 dollyn 的回复:
新版的应该都没有问题,你换最新的swt试试
恩,好的,谢谢了

#10


引用 8 楼 dollyn 的回复:
新版的应该都没有问题,你换最新的swt试试
能不能多问个问题,为什么很多时候我使用shell.redraw()这个方法时基本是没用的,这是什么原因啊?谢谢了,新手~

#11


本帖最后由 dollyn 于 2014-07-14 12:54:44 编辑
这个。。。 猜不出来
不过你具体想做什么?

#12


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
界面上做了combo选项,加了中文跟English切换,点击的时候想实现中英文转换 combo.setItems(new String[] {"中文","english"});
combo.select(0);

combo.addModifyListener(new ModifyListener()
{
            
public void modifyText(ModifyEvent arg0) 
{
// bundle.clearCache(loader);
 //TODO
        if("Combo {english}".equals(arg0.getSource().toString()))
        {
         bundle = ResourceBundle.getBundle("language_en_US",Locale.ENGLISH); 
            System.out.println("EN");
            shell.redraw();
        }else
        {
            bundle = ResourceBundle.getBundle("language_zh_CN",Locale.CHINESE);
            System.out.println("CH");
            shell.redraw();
        }
}
});

#13


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
点击没用啊,我自己是想点击界面可以切换的,能想到的办法就是用shell去刷新了,可是没有效果啊

#14


引用 11 楼 dollyn 的回复:
这个。。。 猜不出来
不过你具体想做什么?
能加个扣扣向你请教么,谢谢了

#15


redraw本来也不是干这个用的,界面上文字改变,必须要你自己用代码重设,比如text就必须你调用text.setText()这样才会有效果