SWING的4个问题

kiOm 2004-10-18 09:56:52
1.frame.setLayout()与frame.getContentPane().setLayout()的区别?
frame.add()与frame.getContentPane().add()的区别?

2.存在一个已知的JDialog,然后要将一个ICON加入其中并可指定位置东、西、南、北,好像很难,不知是否有人知道如何做?

3.要关闭一个JDialog用dispose()就可以了吗?
代码JDialog dialog = new JDialog();,关闭按钮用dialog.dispose();,结果每运行一次就会多一个javaw.exe进程,就算点击关闭按钮后,进程仍在。为何?

4.DISPOSE_ON_CLOSE与EXIT_ON_CLOSE的区别?
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanceqw 2004-10-26
  • 打赏
  • 举报
回复
2.使用Layout进行布局,比如FlowLayout GridLayout GridBagLayout BoxLayout等,最常用的东南西北中的那个是BorderLayout布局。
3. dialog.dispose()只是释放dialog所占用的资源(比如屏幕),但是它仍然存在,你可以调用dialog.show()让它再出现。所以javaw.exe进程一直存在,除非你调用System.exit(0);
这个说的是JDialog作为顶级窗口的情况。当其作为JFrame的子窗口时,出现多个JDialog是不会多出javaw.exe进程的,仍然只有JFrame的一个进程。
4. DISPOSE_ON_EXIT类似于刚才的dialog.dispose()只是释放资源,但是这个类还存在
而EXIT_ON_CLOSE则相当于System.exit(0);彻底退出这个javaw.exe进程
jyz072020 2004-10-26
  • 打赏
  • 举报
回复
frame是框架,是不能直接用来add组件的,必须把组件add到容器(contentpane)里才可以。
javakevin 2004-10-18
  • 打赏
  • 举报
回复
1,你要看一下SWING的顶级面板和一般面板的区别,frame是一个最高级的面板,一般不能用来放置组件,只有通过getContentPane()方法来获得FRAME的内容面板才能放置组件
2,没试过,
3,javaw是运行JAVA程序是调用的JDK内部的程序,是正常的
4,DISPOSE_ON_CLOSE是退出时从内存中删除

62,614

社区成员

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

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