您的位置:程序门 -> java -> gui 设计



jframe子窗口显示如何置顶? (附代码)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


jframe子窗口显示如何置顶? (附代码)
发表于:2007-05-27 20:38:41 楼主
import   java.awt.flowlayout;
import   java.awt.event.actionevent;
import   java.awt.event.actionlistener;

import   javax.swing.jcombobox;
import   javax.swing.jframe;
import   javax.swing.jmenu;
import   javax.swing.jmenubar;
import   javax.swing.jmenuitem;

public   class   himmain   extends   jframe   {

private   jcombobox   jcomboboxhimdata   =   null;   //him   data
private   jmenu   jmenufile   =   new   jmenu();
private   jmenuitem   jmenufileload   =   new   jmenuitem();
        private   jmenubar   jmenubar1   =   new   jmenubar();
public   himmain()   {
super();
initialize();
}
private   void   initialize()   {
jcomboboxhimdata   =   new   jcombobox();
jcomboboxhimdata.seteditable(true);
this.getcontentpane().setlayout(new   flowlayout());
this.getcontentpane().add(jcomboboxhimdata);
        jmenufile.settext( "file(f) ");
        jmenufileload.settext( "load(l) ");
        jmenufile.add(jmenufileload);        
        jmenubar1.add(jmenufile);
        this.setjmenubar(jmenubar1);
        jmenufileload.addactionlistener(new   actionlistener()     {
            public   void   actionperformed(actionevent   e)   {
            jmenufileload_actionperformed(e);
            }
        });
this.setsize(200,200);
}

    public   void   jmenufileload_actionperformed(actionevent   e)   { //todo   load    
    himload   hl=new   himload();
    hl.show();
    }
   
    public   static   void   main(string   args[])   {
    himmain   f   =   new   himmain();
            f.setdefaultcloseoperation(jframe.exit_on_close);
            f.show();
}}

import   java.awt.flowlayout;

import   javax.swing.jframe;
import   javax.swing.jlabel;
import   javax.swing.jtextfield;

public   class   himload   extends   jframe   {
        private       jlabel     jlabel1=null;
        private       jtextfield   jtextfield1=null;
public   himload()   {
super();
initialize();
}
public   void   initialize()   {
jlabel1   =   new   jlabel();
jlabel1.settext( "him_head_da ");
jtextfield1=new   jtextfield();
jtextfield1.settext( "da ");
this.getcontentpane().setlayout(new   flowlayout());
this.getcontentpane().add(jlabel1);
this.getcontentpane().add(jtextfield1);
this.setdefaultcloseoperation(jframe.exit_on_close);
this.setsize(100,100);

}
}


主窗口中有一个jcombox,且seteditable(true).   当点击菜单load时,显示的子窗口(jframe)不能置顶显示.   那位高人知道如何让子窗口能置顶显示? 前提条件:不能将子窗口改成jdialog类型.
发表于:2007-05-27 21:26:081楼 得分:0
首先声明我不是高手!
在你的jmenufileload.addactionlistener(new   actionlistener()     {
            public   void   actionperformed(actionevent   e)   {
            jmenufileload_actionperformed(e);
            }
        });
里面添加一行代码:
jmenufileload.addactionlistener(new   actionlistener()     {
            public   void   actionperformed(actionevent   e)   {
            jmenufileload_actionperformed(e);
            jcomboboxhimdata.seteditable(false);
            }
        });
搞定
发表于:2007-05-28 08:15:472楼 得分:0
看上去窗口是可以置顶了,但这样做,回到主窗口就不能编辑jcombox了.  
另外,我发现,若在主窗口再追加一个控件如jtextfield,   在打开load子窗口前,先将焦点从jcombox移到jtextfield,这样显示的子窗口也可以置顶,这样的代码如何写呢.
发表于:2007-05-28 12:10:153楼 得分:0
himload   hl=new   himload();
hl.setalwaysontop(alwaysontop);
hl.setvisible(true);


建議類名還是首字母大寫的好,   看著比較清楚...
发表于:2007-05-28 14:45:414楼 得分:0
不行,setalwaysontop这个方法在jdk   1.4.2下没有.   程序只能在1.4.2下开发执行.

btw,我曾试过在jdk1.6下跑原来的程序,不加任何额外的方法,都可以使子窗口前置.
发表于:2007-05-29 16:03:585楼 得分:0
如果用swt就方便了
在子窗口中加上
new   shell(/*swt.shell_trim   ¦   swt.primary_modal     ¦   swt.border   */);
这三个特性:swt.shell_trim   ¦   swt.primary_modal     ¦   swt.border,真的很管用:
发表于:2007-08-10 22:18:356楼 得分:0
请教一个问题,我用swing写的一个jframe中,按按钮弹出一个swt的brower,那个browser窗口不能置前,请问怎么弄才能让那个browser窗口置前呢?谢谢!
发表于:2007-08-15 10:40:247楼 得分:0
为什么不用带模式的对话框?
发表于:2007-08-19 12:24:488楼 得分:0
源代码大全   all   language   source   code     全球最大最全源代码分类网站  
技术支持:腾云驾雾   http://www.tengyunjiawu.net  

纯英文,英文不好的勿进!


快速检索

最新资讯
热门点击