一个似乎是很简单的问题!麻烦大家来看一下.

jrs05 2007-10-13 05:36:03
我要把设计的GUI放在屏幕的正中央,并且初始时就最大化,应该怎么做?我在API里找了半天也找不到解决的办法.Who knonws?Please do not bother to tell me.....................
...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2007-10-16
  • 打赏
  • 举报
回复
//初始时就最大化,帮你看了一下jdkdoc
your_frame.setExtendedState(Frame.MAXIMIZED_BOTH);

setState是兼容于老版本jdk,只有两种状态,所以应该用扩展状态设置。
jrs05 2007-10-16
  • 打赏
  • 举报
回复
qybao说的没错,我其实是太懒了,本来javadoc都会看得懂的,只是懒得去找.
I hava made a decision that I will look up the javaAOI more to solve problems in my study.
jrs05 2007-10-14
  • 打赏
  • 举报
回复
好像后面一个不行,反而初始时总是最小的了.只有标题栏了????????????????????????
但我改进了下:
Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize();
myFrame.setSize((int)screen.getWidth(),(int)screen.getHeight);
但这样电脑的任务栏也被覆盖了.不方便用户进行操作,于是我这样设:
myFrame.setSize((int)screen.getWidth(),(int)screen.getHeight-30);
但这样感觉总是不雅,有没有更好的办法,使我的GUI界面覆盖除任务栏以外的所有区域.
qybao 2007-10-14
  • 打赏
  • 举报
回复
好像后面一个不行,反而初始时总是最小的了.只有标题栏了????????????????????????
--------------------------------
//初始时就最大化,这样改试试
int state = your_frame.getState();
state = state | Frame.MAXIMIZED_BOTH;
your_frame.setState(state);
--------------------------------

遇到一个问题,也就是只有在按钮获得焦点才能监听键盘是否输入了enter键,我试着把sure.addKeyListener(new KeyAdapter(){
改为this.addKeyListener(new KeyAdapter(){

可弄得更糟,按下Enter键根本没反应.Why???????????????????????????????????????????
总之如何能在按钮不获得焦点的情况下,使按下Enter键就可以达到点击按钮的目的?????
---------------------------------------
你的焦点不在监听对象上,是不能触发事件的,所以还是按你原来的做法,通过按tab键让焦点转到button上在按enter键,或者改为在jpf上加监听,也就是jpf.addKeyListener(new KeyAdapter(){。 this.addKeyListener是在你的frame上追加监听,但是因为你的焦点不在frame上,所以也不会触发事件了。

qybao 2007-10-14
  • 打赏
  • 举报
回复
LZ可能对焦点的概念不清楚,所谓焦点,是指当前处于active状态,可以响应用户事件,frame载入时是会获得了焦点,但是当你操作其他控件时,frame就会失去焦点,而你当前操作的控件就会获得焦点。而且对于容器的焦点好像有这个一个特点,如果容器上没有任何控件,那么焦点就会在容器上,如果容器上有控件,那么焦点就会在控件上,缺省的第一个被添加到容器的控件,当然,可以通过类似于taborder这样的属性来设置初始焦点,也可以通过requestFocus来控制聚焦。

至于最大化,按javadoc,应该这样设置是可以的,具体还需要哪些相应的设置,我就没细查了,LZ应该学会自己查看javadoc,不要什么都依赖于人,不管怎么说,我已经算是把方向指给你了,有问题你应该按照这个方向自己去寻找突破口,这样你才能有进步。

wddfirst 2007-10-14
  • 打赏
  • 举报
回复
或则用边框布局
wddfirst 2007-10-14
  • 打赏
  • 举报
回复
Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize();
int x = (int)((screen.getWidth()-your_frame.getWidth())/2);
int y = (int)((screen.getHeight()-your_rame.getHeight())/2);
your_frame.setLocation(x, y);
your_frame.setVisible(true);

//初始时就最大化
your_frame.setState(Frame.MAXIMIZED_BOTH);
jrs05 2007-10-14
  • 打赏
  • 举报
回复
再问一个跟上面没什么关系的问题:实现键入回车键就等价于点击按钮
class MyFrame extends JFrame
{
JTextField jtf = new JTextField();
JPasswordField jpf = new JPasswordField();
JButton sure=new JButton("确定");
sure.addActionListener(this);
sure.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER ){
sure.doClick();
}
}
});
------------- 以下省略----------------------
}
遇到一个问题,也就是只有在按钮获得焦点才能监听键盘是否输入了enter键,我试着把sure.addKeyListener(new KeyAdapter(){
改为this.addKeyListener(new KeyAdapter(){

可弄得更糟,按下Enter键根本没反应.Why???????????????????????????????????????????
总之如何能在按钮不获得焦点的情况下,使按下Enter键就可以达到点击按钮的目的?????
jrs05 2007-10-14
  • 打赏
  • 举报
回复
第一个问题还是没有解决,还是最小的,在屏幕的左上角,只有标题栏??????????????????
-----------------------------------------------------------------------------------------------------
第二个问题我还有一个疑问,就是为什么JFrame没有获得焦点,按我的观点是在frame载入时就获得了焦点,直得它销毁为止.要不然frame什么时候才获得焦点?虽然我可以为frame上的每个控件注册KeyListener,这样只要一按下enter,就相当于单击按钮了.但这样也太麻烦了.我想问的就是能不能在frame上,注册一次KeyListener就可以达到这个目的?
qybao 2007-10-13
  • 打赏
  • 举报
回复
have a try

//GUI放在屏幕的正中央
Dimenstion screen = Toolkit.getDefaultToolkit().getScreenSize();
int x = (int)((screen.getWidth()-your_frame.getWidth())/2);
int y = (int)((screen.getHeight()-your_rame.getHeight())/2);
your_frame.setLocation(x, y);
your_frame.setVisible(true);

//初始时就最大化
your_frame.setState(Frame.MAXIMIZED_BOTH);

62,623

社区成员

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

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