大家来讨论!关于application、Swing编程的一些很令人头疼的问题!

Dickensi 2002-07-04 10:47:54
1、请问大家在处理一个比较复杂的界面的时候是如何来增强代码可读性的,就是怎样把
代码分割成若干个小java文件的!我试图用继承JPane来处理,但这在样写事件处理的
时候非常麻烦(我觉得不可行),还有在处理事件的时候一般是使用匿名类(很不好
优化代码),还是非匿名类(增加了很大的代码编写复杂性)!
(我用JBuilder7 编辑工具)

2、如何使一个窗口实现all ways on top!

3、JTableHead能不能做出这种表头,怎么实现?
| |____________| |
|____|______|_____|_______|

4、在多文档中使用JInternalFrame的时候,如何让它最大化,把子窗口最大化并把那个讨
厌的 titlebar去掉变成嵌入父窗口的一个小关闭按钮,我是用
JDeskTop.getDesktopsize()来实现的但总去不掉titlebar!同样在代码中怎样控制
最大化,最小华操作!

5、同样是最大化问题,没找到java窗口最大化的函数实现最大化我用
Toolkit.getDefaultToolkit().getScreenSize()来实现,但每次都会被任务栏覆盖
一部分窗口,郁闷!

6、谁有插入式界面样式常量表 e我一份!Dickensi@163.net

谢谢!满意的回答我另行开贴给分!
...全文
99 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxh777 2002-07-08
  • 打赏
  • 举报
回复
不错不错,经典之作
daehappy 2002-07-07
  • 打赏
  • 举报
回复
up!gz!
Dickensi 2002-07-06
  • 打赏
  • 举报
回复
alphazhao(绿色咖啡) :
谢谢你给我的那个网址,那个地方很好!

2、这种不行!
这就是典型的模态对话框了!
打开模态对话框后就不能再在父窗口中操作!

jb6弹出的帮助是可以操纵其父窗口的!
alphazhao 2002-07-06
  • 打赏
  • 举报
回复
2、你的问题的需求可不可以改动成如下:当你的程序获得焦点的时候,这个界面A显示在所有的界面之外(第一个显示),除了界面A可以被点击外,其它的界面均不可点击。就像Jbuilder里面按下F1弹出的界面一样!
如果是这样就简单多了,只不过是将界面A和调用它的父界面owner锁定罢了。不过界面A一定要是Dialog类型的,不知道jdk1.4里面Frame类型的能否锁定。看看Dialog或者JDialog的构造函数,你会发现有几个这种类型参数的:
(Frame owner,boolean modle,……)
其中owner就是调用界面A的界面,它可以是Frame、JFrame、Dialog和JDialog中的一种,modle为true的时候,即是锁定界面A和它的调用界面(owner界面)。

Dickensi 2002-07-05
  • 打赏
  • 举报
回复
现在只解决了3!
Dickensi 2002-07-05
  • 打赏
  • 举报
回复
现在只解决了3!
gularess 2002-07-04
  • 打赏
  • 举报
回复
2.要调用win32API吧,写一个native方法。
6.在javax.swing.plaf.basic.BasicLookAndFeel.java中,自己找找!
yakuu 2002-07-04
  • 打赏
  • 举报
回复
1,写JPanel类。实现preload。
2,回家给你。
Dickensi 2002-07-04
  • 打赏
  • 举报
回复
谢谢!

phoenix_zd(天马行空) :
你这个主意不错!
不过,我是在想是不是可以直接发送个类似窗口最大化鼠标事件给窗口,java既然可以通过单击最大化按钮最大化,那么它应该可以读出屏幕操作区域的尺寸,还有可能根本就不需我们去读屏幕操作区域,!
就像windows中的消息机制一样!

alphazhao(绿色咖啡) :
2、让他永远显示在最前面,就是失去焦点的时候也不会被其他窗口覆盖了,就像
在jb6中按f1弹出的帮助那样。或者win2k的任务管理器! 其实我更希望找到
jb6中的那种方式,可以被其他程序窗口覆盖,但在本程序窗口中永远显示在最
前面!
Ryanzhou 2002-07-04
  • 打赏
  • 举报
回复
gz
alphazhao 2002-07-04
  • 打赏
  • 举报
回复
1、这个问题实在是很难以解决,至少界面上的控件极其相关n多的监听阿什么的处理是无法分成几个小java文件的。
2、你这个是什么意思?去掉热咖啡图标还是改变它的top格式?
3、关于jtable的列表形式,你可以到这里看看,里面有n多的table样板源代码
http://www2.gol.com/users/tame/swing/examples/SwingExamples.html
马行空牛耕田 2002-07-04
  • 打赏
  • 举报
回复
这个方法的弊端就是可能在不同的分辨率下,最大化按钮的位置不好确定;而且,如果在代码运行过程中,人为的故意频繁移动鼠标,那么机器人的鼠标移动就会被覆盖,结果是不能自动移动到最大化按钮上,点击也没有用!代码如下! :
Robot rb=new Robot();
int x=this.getWidth( )-40;
int y=10;
rb.mouseMove(x,y);
//System.out.println("机器人移动鼠标!");
rb.mousePress (InputEvent.BUTTON1_MASK );
//System.out.println("机器人点鼠标!");
rb.mouseRelease (InputEvent.BUTTON1_MASK);
//System.out.println("机器人放开鼠标!");
//rb.keyPress (KeyEvent.VK_X );
rb.mouseMove(this.getWidth()/2 ,this.getHeight()/2 );
马行空牛耕田 2002-07-04
  • 打赏
  • 举报
回复
5、同样是最大化问题,没找到java窗口最大化的函数实现最大化我用
Toolkit.getDefaultToolkit().getScreenSize()来实现,但每次都会被任务栏覆盖
一部分窗口,郁闷!

这个问题我们是使用java.awt.Robot机器人来实现的! 基本思想是借用机器人实例移动鼠标和点击鼠标——移动到最大化按钮上并点击它。在此之前我们应该使窗口实现表面上的最大,也就是你说的覆盖了任务栏的那种,这样看起来就象真的一样!
要注意的是鼠标移动到的最大化按钮的坐标,这个坐标我们是取得X的值减去了一个常数,这个要自己去试,我们一般是减去15个象素;Y轴坐标取10左右吧,你自己也要多试才行!
Dickensi 2002-07-04
  • 打赏
  • 举报
回复
7、还有titlebar的字体怎么控制?
Dickensi 2002-07-04
  • 打赏
  • 举报
回复
不管怎么说,非常感谢!
Apocalypse 2002-07-04
  • 打赏
  • 举报
回复
估计能写出来,可惜我现在没时间啊
Dickensi 2002-07-04
  • 打赏
  • 举报
回复
Apocalypse(逍遥思辨) :
这么繁!你现在能不能把它写出来了?
wby 2002-07-04
  • 打赏
  • 举报
回复
JDK升级到1。4,对窗体最大化是很EASY的。
levinling 2002-07-04
  • 打赏
  • 举报
回复
关注
Apocalypse 2002-07-04
  • 打赏
  • 举报
回复
也可以找个JClass 5.0k,记得里面有个JCMDIPane已经实现了这功能,不过往父窗体里面加window菜单的逻辑不好,只能加到最后一个(经常出现在help后面的情况),可以找一个来套用或者参考。
加载更多回复(16)

62,615

社区成员

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

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