bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 Java Java Swing 之 JFrame 視窗相關操作
查看: 26256|回復: 4
go

Java Swing 之 JFrame 視窗相關操作 [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2007-11-27 13:30 |只看該作者 |倒序瀏覽 |打印
如果經常使用可以用一個函數處理如下:
  1. public void setWindow(String Title, String image, int SizeX, int SizeY)
  2. {
  3.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出方式
  4.         setTitle(Title); //標題名稱
  5.         ImageIcon ico = new ImageIcon(image); //圖標創建("當前程式目錄下儲存圖片的檔案名/圖片名.gif或.jpg")//"image/Title.gif"
  6.         setIconImage(ico.getImage()); //圖標設定
  7.         setSize(SizeX, SizeY); //設定視窗大小
  8.         setLocationRelativeTo(this); //設定視窗初始位置在螢幕中心
  9.         setResizable(true); //設定視窗大小可變
  10.         setExtendedState(JFrame.MAXIMIZED_BOTH); //設定最大化顯示
  11.         setVisible(true); //設定視窗可見
  12. }
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

2#
發表於 2007-11-27 13:49 |只看該作者
若是想要建立一個全螢幕、總是在最前面、沒有邊框、沒有標題列,並且切換不出去,也不能移動或最小化的視窗

寫一個 class 繼承自 JFrame 在建構函數中寫下列程式
  1. this.setExtendedState(JFrame.MAXIMIZED_BOTH); //最大化
  2. this.setAlwaysOnTop(true); //總在最前面
  3. this.setResizable(false); //不能改變大小
  4. this.setUndecorated(true); //不要邊框
複製代碼

接下來是處理事件部分,需要關心的事件是 windowLostFocus 和 windowIconified (最小化)
  1. public void this_windowLostFocus(WindowEvent e)
  2. {
  3.         this.requestFocus();
  4.         this.setLocation(0,0);
  5. }

  6. public void this_windowIconified(WindowEvent e)
  7. {
  8.         this.setExtendedState(JFrame.MAXIMIZED_BOTH);
  9. }
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

3#
發表於 2007-11-27 14:16 |只看該作者
Full-screen
  1. GraphicsDevice myDevice;
  2. Window myWindow;
  3. try {
  4.         myDevice.setFullScreenWindow(myWindow);
  5.         ...
  6. }
  7. finally {
  8.         myDevice.setFullScreenWindow(null);
  9. }
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

4#
發表於 2007-11-27 15:02 |只看該作者
如何改變 JFrame 標題列的顯示方法

我们在使用的程序通常標題列上有三个按鈕,最大化,最小化與關閉。
但是有时候我們只需要顯示其中一個或者不需要。下面的程式就可以達到這個目的。
  1. /**
  2. * <p>Copyright: Copyright (c) 2005</p>
  3. * <p>Company: Completesolution Solution(GD) Company</p>
  4. * @author Jason
  5. * @version 1.0
  6. */
  7. /**
  8. * 请看加了注释的两行,要改变标题栏的显示状态,
  9. * 关键代码就是这两行,第1行去掉窗口的装饰,
  10. * 第2行为窗口指定头饰风格。
  11. * 方法为窗口指定以下的装饰风格:
  12. *  NONE                  无装饰(即去掉标题栏)
  13. FRAME                 普通窗口风格
  14. PLAIN_DIALOG          简单对话框风格
  15. INFORMATION_DIALOG    信息对话框风格
  16. ERROR_DIALOG          错误对话框风格
  17. COLOR_CHOOSER_DIALOG  拾色器对话框风格
  18. FILE_CHOOSER_DIALOG   文件选择对话框风格
  19. QUESTION_DIALOG       问题对话框风格
  20. WARNING_DIALOG        警告对话框风格

  21. */
  22. import javax.swing.*;
  23. import java.awt.*;
  24. import java.awt.event.*;
  25. public class DecoratedFrame extends JFrame
  26. {
  27.     public DecoratedFrame()
  28.     {
  29.         JLabel lbl = new JLabel("視窗風格測試");
  30.         lbl.setAlignmentX(Component.RIGHT_ALIGNMENT);
  31.         lbl.setVerticalAlignment(SwingConstants.CENTER);        
  32.         this.getContentPane().add(lbl);
  33.         this.setUndecorated(true); // 去掉視窗的裝飾

  34. //采用指定的窗口装饰风格

  35.         this.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG );   

  36.         this.setSize(300,150);
  37.     }
  38.    
  39.     public static void main(String[] args)
  40.     {
  41.         JFrame frame = new DecoratedFrame();
  42.         frame.setVisible(true);
  43.     }
  44. }
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

5#
發表於 2009-7-27 14:58 |只看該作者
讓 JFrame 顯示在螢幕中心

舊的方式
  1. frame.setSize(640,480);
  2. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  3. Dimension size = frame.getSize();
  4. int x = (screenSize.width - size.width) / 2;
  5. int y = (screenSize.height - size.height) / 2;
  6. frame.setLocation( x, y );
  7. frame.setVisible(true);
複製代碼
新的方式
  1. frame.setSize(640,480);
  2. frame.setLocationRelativeTo(null);
  3. frame.setVisible(true);
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-5-17 17:23 , Processed in 0.014503 second(s), 10 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.