精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺析Swing實現MDI的方法

開發 后端
本文介紹Swing實現MDI風格界面的基礎是JInternalFrame和JDesktopPane。以及介紹Swing實現MDI的方法。
JConsole是一個基于JMX的GUI工具,用于連接正在運行的JVM,它是一個MDI風格的Java桌面應用。Swing實現MDI風格界面的基礎是JInternalFrame和JDesktopPane。以下是Swing實現MDI的方法:
  1. import java.awt.BorderLayout;  
  2. import java.awt.Container;  
  3. import java.awt.Dimension;  
  4. import java.awt.FlowLayout;  
  5. import java.awt.Insets;  
  6. import java.awt.event.ActionEvent;  
  7. import java.awt.event.ActionListener;  
  8. import java.awt.event.ComponentAdapter;  
  9. import java.awt.event.ComponentEvent;  
  10. import java.beans.PropertyVetoException;  
  11.  
  12. import javax.swing.JButton;  
  13. import javax.swing.JDesktopPane;  
  14. import javax.swing.JFrame;  
  15. import javax.swing.JInternalFrame;  
  16. import javax.swing.JMenuBar;  
  17. import javax.swing.JMenuItem;  
  18. import javax.swing.JPanel;  
  19. import javax.swing.SwingUtilities;  
  20. import javax.swing.plaf.basic.BasicInternalFrameUI;  
  21.  
  22. /**  
  23. * MDIFrame is a frame using JInternalFrame to implements MDI as Word on Windows.  
  24. *   
  25. * @author Cheng  
  26. * @version 1.0.0 for GPF MDI test  
  27. */  
  28. @SuppressWarnings("serial")  
  29. public class MDIFrame extends JFrame {  
  30.    
  31.     /** The desktop pane. */  
  32.     final JDesktopPane desktopPane = new JDesktopPane();  
  33.    
  34.     /** The operation pane with restore and close buttons. */  
  35.     final JPanel opPane = new JPanel();  
  36.    
  37.     /**  
  38.      * Instantiates a new mDI frame.  
  39.      */  
  40.     public MDIFrame(){  
  41.       setTitle("MDI Frame");  
  42.       setSize(600, 550);  
  43.       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  44.     
  45.       final JMenuBar bar = new JMenuBar();  
  46.       JMenuItem exit = new JMenuItem("Exit");  
  47.           exit.addActionListener(new ActionListener(){  
  48.  
  49.               @Override  
  50.               public void actionPerformed(ActionEvent e) {  
  51.                    System.exit(0);  
  52.               }  
  53.      
  54.       });  
  55.       bar.add(exit);  
  56.       // operation pane with two button, set invisible at first  
  57.       opPane.setLayout(new FlowLayout(FlowLayout.TRAILING));  
  58.       JButton restore = new JButton("#");  
  59.       restore.setMargin(new Insets(0, 0, 0, 0));  
  60.       restore.setPreferredSize(new Dimension(15, 15));  
  61.       restore.addActionListener(new ActionListener(){  
  62.  
  63.       @Override  
  64.       public void actionPerformed(ActionEvent e) {  
  65.             InnerFrame i = (InnerFrame)desktopPane.getSelectedFrame();  
  66.             try {  
  67.                 // notice this method, when JInternalFrame set maximun false  
  68.                 // this internal frame will be set as old size  
  69.                 i.setMaximum(false);  
  70.             } catch (PropertyVetoException ex) {  
  71.                 ex.printStackTrace();  
  72.             }  
  73.             i.showNorthPanel();  
  74.             opPane.setVisible(false);  
  75.           }  
  76.      
  77.       });  
  78.       opPane.add(restore);  
  79.       JButton close = new JButton("X");  
  80.       close.setMargin(new Insets(0, 0, 0, 0));  
  81.       close.setPreferredSize(new Dimension(15, 15));  
  82.       close.addActionListener(new ActionListener(){  
  83.  
  84.           @Override  
  85.           public void actionPerformed(ActionEvent e) {  
  86.             JInternalFrame i = desktopPane.getSelectedFrame();  
  87.             i.dispose();  
  88.             opPane.setVisible(false);  
  89.           }  
  90.      
  91.       });  
  92.       opPane.add(close);  
  93.       bar.add(opPane);  
  94.       opPane.setVisible(false);  
  95.       setJMenuBar(bar);  
  96.     
  97.       Container content = getContentPane();  
  98.       content.add(desktopPane, BorderLayout.CENTER);  
  99.       final JPanel ctrlPane = new JPanel();  
  100.       JButton add = new JButton("add");  
  101.       add.addActionListener(new ActionListener(){  
  102.  
  103.           @Override  
  104.           public void actionPerformed(ActionEvent e) {  
  105.               InnerFrame iFrame = new InnerFrame();  
  106.               iFrame.setVisible(true);  
  107.               desktopPane.add(iFrame);  
  108.           }  
  109.      
  110.       });  
  111.       ctrlPane.add(add);  
  112.       content.add(ctrlPane, BorderLayout.SOUTH);  
  113.       setVisible(true);  
  114.     }  
  115.    
  116.     /**  
  117.      * The Class InnerFrame.  
  118.      */  
  119.     class InnerFrame extends JInternalFrame {  
  120.     
  121.       /** The is hidden. */  
  122.       boolean isHidden = false;  
  123.     
  124.       /** The old ui. */  
  125.       BasicInternalFrameUI oldUi = null;  
  126.     
  127.       /**  
  128.        * Instantiates a new inner frame.  
  129.        */  
  130.       public InnerFrame() {  
  131.           oldUi = (BasicInternalFrameUI)getUI();  
  132.           setSize(200, 200);  
  133.           maximizable = true;  
  134.           closable = true;  
  135.           addComponentListener(new ComponentAdapter() {  
  136.               public void componentResized(ComponentEvent e) {  
  137.                   InnerFrame selectedFrame = (InnerFrame)e.getSource();  
  138.                   if(selectedFrame.isMaximum()){  
  139.                       selectedFrame.hideNorthPanel();  
  140.                       opPane.setVisible(true);  
  141.                       try {  
  142.                            selectedFrame.setMaximum(true);  
  143.                       } catch (PropertyVetoException ex) {  
  144.                            ex.printStackTrace();  
  145.                        }  
  146.                    }  
  147.                }  
  148.           });  
  149.       }  
  150.     
  151.       /**  
  152.        * Hide north panel.  
  153.        */  
  154.       public void hideNorthPanel(){  
  155.           ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);  
  156.           this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);  
  157.           isHidden = true;  
  158.       }  
  159.     
  160.       /**  
  161.        * Show north panel.  
  162.        */  
  163.       public void showNorthPanel() {  
  164.           this.setUI(oldUi);  
  165.           this.putClientProperty("JInternalFrame.isPalette", Boolean.FALSE);  
  166.           isHidden = false;  
  167.       }  
  168.     
  169.       /* (non-Javadoc)  
  170.        * @see javax.swing.JInternalFrame#updateUI()  
  171.        */  
  172.       public void updateUI() {  
  173.           super.updateUI();  
  174.           if (isHidden) {  
  175.               hideNorthPanel();  
  176.           }  
  177.        }  
  178.     }  
  179.    
  180.     /**  
  181.      * The main method.  
  182.      *   
  183.      * @param args the arguments  
  184.      */  
  185.     public static void main(String[] args) {  
  186.           SwingUtilities.invokeLater(new Runnable(){  
  187.  
  188.               @Override  
  189.               public void run() {  
  190.                    new MDIFrame();  
  191.               }  
  192.      
  193.           });  
  194.      }  
  195. }  

以上是Swing實現MDI的方法,希望大家有用。

【編輯推薦】

  1. 淺談不論是AWT還是Swing模式
  2. 全面比較Swing與SWT
  3. Swing程序中調用JavaFX代碼
  4. 概述Swing大多數控件
  5. 淺談Swing中的Look&Feel
責任編輯:佚名 來源: 電子工業出版社
相關推薦

2009-07-17 16:41:48

actionPerfoSwing

2009-07-15 11:02:32

Swing組件

2009-07-17 11:30:44

Swing Image

2009-07-10 10:37:50

Swing Set示例

2009-07-16 09:54:44

LookupEventSwing線程

2009-07-15 16:03:26

Swing線程

2009-07-15 16:50:07

Swing項目

2009-07-16 17:01:09

Swing字符串

2009-07-10 14:20:01

AcceleratorJava Swing

2009-07-15 13:46:26

Swing體系結構

2009-09-17 08:47:00

Linq插入數據

2009-09-28 10:35:45

Silverlight

2009-09-07 09:36:29

C# DisposeDispose方法

2009-07-14 14:00:47

iData技術

2009-07-15 17:33:08

Swing客戶端

2009-07-10 17:24:07

Swing應用程序

2012-01-17 17:21:24

JavaSwing

2009-07-14 15:12:36

SwingSWT和AWT

2009-10-12 10:33:11

Javascript替

2009-12-23 09:04:41

LINQ通用分頁
點贊
收藏

51CTO技術棧公眾號

香港伦理在线| 香蕉影院在线观看| 最新国产一区二区| 欧美日韩综合视频| 亚洲精品中文字幕乱码三区不卡| 国产免费叼嘿网站免费| 亚洲精品极品| 中文字幕在线精品| 逼特逼视频在线观看| 国产一区二区精品调教| 亚洲图片欧美色图| 亚洲欧洲在线一区| 狠狠综合久久av一区二区| 老牛影视一区二区三区| 欧美日本高清一区| 手机毛片在线观看| 亚洲视频在线观看免费视频| 欧美黑粗硬大| 欧美视频二区36p| 免费看污污视频| 韩国免费在线视频| 成人在线一区二区三区| 91精品久久久久久| 日产精品久久久久| 欧美xxx在线观看| 国产亚洲欧美视频| 中文字幕 亚洲一区| 五月亚洲婷婷| 91精品麻豆日日躁夜夜躁| 中国丰满人妻videoshd | 中文一区一区三区高中清不卡免费| 国产日本欧洲亚洲| 久久国产一区二区| 黄色小视频免费观看| 国产一级精品在线| 国产免费亚洲高清| 中文字幕欧美人妻精品| 久久亚洲国产精品一区二区| 性欧美亚洲xxxx乳在线观看| 国产1区2区3区4区| 自拍偷拍欧美专区| x99av成人免费| 懂色av蜜臀av粉嫩av永久| 不卡视频在线| 亚洲美女自拍视频| 日本黄色特级片| 欧美调教视频| 日韩精品视频在线观看免费| 午夜剧场免费看| 18国产精品| 日韩欧美电影一区| 26uuu国产| 日韩欧美中文在线观看| 91精品国产91热久久久做人人| 麻豆一区二区三区视频| 天堂久久午夜av| 在线观看免费成人| 少妇性l交大片| 日韩网站中文字幕| 欧美日韩精品欧美日韩精品一| 亚洲久久中文字幕| 99精品在线免费观看| 日韩一区二区精品| 女同性αv亚洲女同志| 成人爽a毛片免费啪啪红桃视频| 欧美r级在线观看| 中文字幕天堂av| 欧美美女在线直播| 国产午夜精品一区理论片飘花| 中日韩精品一区二区三区| 国产一区二区精品久| 国产一区二区三区在线观看视频| 美国一级黄色录像| 91精品国产自产在线观看永久∴| 欧美激情在线播放| 国产在线观看黄色| 秋霞午夜鲁丝一区二区老狼| 91精品国产综合久久久久久蜜臀| 国产女人18毛片18精品| 成人av资源网站| 欧美精品七区| 婷婷免费在线视频| 亚洲成a人片在线不卡一二三区| 日本少妇高潮喷水视频| 福利一区二区三区视频在线观看| 91精品中文字幕一区二区三区| 韩国三级hd中文字幕有哪些| 羞羞答答一区二区| 日韩最新在线视频| 精品肉丝脚一区二区三区| 性高湖久久久久久久久| 国产精品自拍偷拍视频| 国产 日韩 欧美 综合| 久久久久久久久久久久久女国产乱| 亚洲一区二区三区免费观看| 激情图片在线观看高清国产| 色综合中文字幕国产| 97人人爽人人| 天天久久夜夜| 欧美巨乳在线观看| 亚洲黄网在线观看| 高清国产午夜精品久久久久久| 久久综合久久综合这里只有精品| 1024视频在线| 日韩欧美国产高清91| 天堂中文av在线| 免费欧美激情| 久久免费视频在线观看| 自拍偷拍精品视频| av动漫一区二区| 一本—道久久a久久精品蜜桃| 午夜影院一区| 欧美成人一级视频| а天堂中文在线资源| 国产一区二区高清| 99re在线观看视频| 国产激情在线| 欧美性大战xxxxx久久久| 91九色蝌蚪porny| 在线精品小视频| 国产精品免费在线免费| 视频一区二区免费| 亚洲国产日韩在线一区模特| 成年人三级黄色片| 成人在线国产| 午夜免费在线观看精品视频| 精品人妻av一区二区三区| 国产精品色哟哟| 男人亚洲天堂网| 欧美精品国产白浆久久久久| 欧美国产中文字幕| 99精品免费观看| 国产精品电影一区二区| 日韩免费高清在线| 久操精品在线| 欧美一级在线播放| 性做久久久久久久| 亚洲男人的天堂在线aⅴ视频| 亚洲污视频在线观看| 九九久久精品| 日韩av三级在线观看| 亚洲av片在线观看| 亚洲va国产天堂va久久en| 中文字幕一区二区三区人妻在线视频 | 国产精品一区二区在线看| 色中文字幕在线观看| 台湾天天综合人成在线| 色七七影院综合| 中文字幕在线播放av| 国产精品国产三级国产普通话蜜臀| 日本999视频| 日韩成人综合| 国产日韩专区在线| 成人黄色在线电影| 日韩欧美成人激情| 国产无套在线观看| 97久久精品人人做人人爽| 欧美成人免费在线观看视频| 好吊妞视频这里有精品| 97不卡在线视频| 欧美色综合一区二区三区| 日韩欧美在线网址| 国产成人免费观看网站| 韩国三级在线一区| 一本久道高清无码视频| 性欧美lx╳lx╳| 国产精品久久久久久久久久| 黄色网址在线免费观看| 精品国产乱码91久久久久久网站| 中文字幕亚洲高清| 国产拍揄自揄精品视频麻豆| 久久久久xxxx| 欧美午夜一区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 在线观看日本www| 激情一区二区| 免费亚洲一区二区| 欧美性aaa| 久久久久久久久久久免费 | 中文字幕在线看视频国产欧美| 一区二区美女视频| 亚洲国产一区二区三区| 国产三级av在线播放| 国产毛片精品一区| 久久无码高潮喷水| 一本一道久久综合狠狠老| 国产精品一区二区三区在线| 欧美成人精品三级网站| 操91在线视频| 九色视频成人自拍| 日韩欧美中文一区二区| 69亚洲精品久久久蜜桃小说 | 成人国产精品免费观看动漫| 国产成人无码一二三区视频| 亚洲成av人电影| 久久福利电影| 国产免费av国片精品草莓男男| 国内精品在线一区| 午夜小视频在线| 亚洲国产精品小视频| 中文字幕欧美人妻精品| 天天色图综合网| 少妇aaaaa| 国产欧美日韩在线观看| 在线xxxxx| 国产在线国偷精品免费看| 人妻熟妇乱又伦精品视频| 亚洲理论电影网| 欧美专区一二三| 久久久久高潮毛片免费全部播放| 91欧美精品午夜性色福利在线| 麻豆视频在线观看免费网站黄| 精品国产欧美成人夜夜嗨| 欧美女同网站| 亚洲激情电影中文字幕| 国产肥老妇视频| 欧美日韩国产高清一区| 五月天婷婷导航| 午夜不卡在线视频| 久草免费新视频| 国产精品二三区| 一级片久久久久| 久久日韩粉嫩一区二区三区| 91九色蝌蚪porny| 成人在线综合网站| a级大片免费看| 国内久久精品视频| 亚洲一区二区三区观看| 热久久国产精品| 玩弄japan白嫩少妇hd| 久久成人国产| 日批视频在线免费看| 欧美三区视频| 欧美人与动牲交xxxxbbbb| 91综合久久| 一区精品视频| 成人中文在线| 亚洲精品欧洲精品| 成人久久一区| 午夜久久资源| 久久国产综合| 在线视频一区观看| 97精品97| a级网站在线观看| 自拍欧美日韩| 成年人网站国产| 在线不卡亚洲| 黄页网站大全在线观看| 99日韩精品| 国产偷人视频免费| 视频一区国产视频| 中文字幕国内自拍| 久久国产生活片100| 波多野结衣国产精品| 国内精品国产三级国产a久久| 中文字幕在线视频一区二区三区| 国产在线看一区| 久久久久久久久久久影视| 国产成人综合亚洲网站| 无码av免费精品一区二区三区| 成人一区二区三区视频在线观看 | 国内毛片毛片毛片毛片| 日韩免费电影网站| 日韩一级片免费观看| 日韩精品在线观看一区| av福利在线播放| 欧美成人免费va影院高清| 免费在线观看的电影网站| 91精品国产91久久久久久| 国产精品迅雷| 国产精品永久在线| 亚洲网址在线观看| 久久久人人爽| 我不卡影院28| www.射射射| 日本aⅴ免费视频一区二区三区| 91精产国品一二三产区别沈先生| 国产成人aaa| 五月天综合视频| 亚洲免费观看高清| 黄色一级片免费在线观看| 欧美日韩黄视频| 日韩中文字幕观看| 中文字幕亚洲综合久久筱田步美| 污视频网站免费在线观看| 欧洲一区二区视频| 97久久精品一区二区三区的观看方式| 国产精品久久久久久久久久久久冷 | 久中文字幕一区| 久久国产成人午夜av影院宅| 黄色一级片在线看| 麻豆成人av在线| 中文字幕精品久久久| 国产精品久久久久毛片软件| 久久精品这里有| 欧美日韩高清一区| 少妇一区二区三区四区| 日韩视频精品在线| 亚洲私拍视频| 99久久精品久久久久久ai换脸| 欧美极品在线观看| 日韩黄色短视频| 久久成人18免费观看| 成人乱码一区二区三区av| 亚洲精品久久7777| 中文字幕一区二区久久人妻| 亚洲精品久久久久| 2021国产在线| 成人av在线天堂| 国产成人3p视频免费观看| 又大又硬又爽免费视频| 国产一区二区在线免费观看| 法国空姐电影在线观看| 天涯成人国产亚洲精品一区av| 国产情侣一区二区| 中文字幕视频一区二区在线有码 | 欧美日韩一区二区高清| 另类小说第一页| 91美女片黄在线观看91美女| 精品少妇一二三区| 日韩视频一区二区在线观看| 日本在线免费看| 国产精品免费一区| 欧美美女视频| 北条麻妃视频在线| 久久综合久久久久88| 久久久午夜影院| 亚洲福利小视频| 91色在线看| 高清国产一区| 亚洲一级特黄| 一级黄色免费视频| 亚洲一区二区三区四区的| 精品国产va久久久久久久| 日韩在线www| 在线观看欧美| 中文字幕在线亚洲精品| 久久99精品久久久| 蜜桃av.com| 欧美一区二区播放| av理论在线观看| 91久久大香伊蕉在人线| 综合久久精品| 国产成人av片| 亚洲成人激情av| 亚洲av片在线观看| 欧美一区二区三区艳史| 久久91成人| 日本 片 成人 在线| 国产精品久久久久久久岛一牛影视 | 激情亚洲影院在线观看| 日韩精品一线二线三线| 青娱乐精品在线视频| 亚洲综合图片一区| 91精品国产一区二区三区香蕉| www红色一片_亚洲成a人片在线观看_| 91在线观看免费| 狠狠色丁香久久综合频道| 久久久久成人精品无码中文字幕| 五月天亚洲婷婷| 成年午夜在线| 91精品在线一区| 亚洲一级二级| 国产真实乱人偷精品人妻| 欧美日韩视频不卡| 羞羞电影在线观看www| 狠狠久久综合婷婷不卡| 日韩精品一卡二卡三卡四卡无卡| 肉色超薄丝袜脚交69xx图片| 日韩女优电影在线观看| 忘忧草在线日韩www影院| 亚洲aⅴ天堂av在线电影软件| 国内一区二区视频| 看片网址国产福利av中文字幕| 亚洲天堂一区二区三区| 国产午夜久久av| 逼特逼视频在线| 亚洲色图视频网| 天天射天天操天天干| 国产免费一区视频观看免费 | 亚洲免费成人在线视频| 亚洲自拍另类综合| 九色在线视频蝌蚪| 99国产在线视频| 久久综合亚州| 欧美色图一区二区| 国产亚洲精品久久久久久| 国产精品亚洲一区二区在线观看 | 四虎4545www精品视频| 日本老太婆做爰视频| 久久九九全国免费| 午夜免费福利视频| 国产成人综合精品在线| 午夜精品av| 97在线观看免费视频| 欧美mv日韩mv国产| 外国成人毛片| 欧美韩国日本在线| 亚洲一区二区三区视频在线播放 | 精品国产福利在线|