天天看點

GUI元件添加、布局設定

添加标簽元件:

先建構一個視窗對象,使用setLayout();方法把布局設定為null,用setBounds();方法将視窗的位置坐标設定好,記得setVisibel();顯示視窗方法盡量寫在代碼的最後面一句。

準備好視窗後,就可以使用JLabel來new出一個标簽對象,像建構視窗一樣使用setBounds把标簽顯示的位置坐标設定好,再使用視窗對象通路add();方法把标簽元件添加到視窗上:

<a href="https://s1.51cto.com/oss/201710/26/670ce758f05f779942ca0463488cbe89.png" target="_blank"></a>

運作效果:

<a href="https://s5.51cto.com/oss/201710/26/9b74ee774711db0dbdf53f5adc24f709.png" target="_blank"></a>

更改字型大小:

使用setFont();方法可以改變某個元件字型的大小,和形體:

<a href="https://s2.51cto.com/oss/201710/26/a84f958141bb9d0cffa74072aeab68f5.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/26/0873c1dd96970c0ae2b72b5227871963.png" target="_blank"></a>

注意:使用這個對象時,傳遞的數字越大,字型越大,數字越小,字型越小

視窗顯示在最上面:

  setAlwaysOnTop();方法,寫true就是令視窗顯示

最上面,false則反之:

<a href="https://s4.51cto.com/oss/201710/26/01a87df4ee74774ad4a0bbbd0b766e5a.png" target="_blank"></a>

顯示效果:

<a href="https://s1.51cto.com/oss/201710/26/eb910090b87fab17ac1b1b6589624e70.png" target="_blank"></a>

設定之後視窗就會一直在其他視窗的上面顯示

去除視窗邊框:

  setUndecorated();方法,寫true就是除去視窗的邊框,

false則反之:

<a href="https://s4.51cto.com/oss/201710/26/5bcbfaa48b60cd935013649653e3d15e.png" target="_blank"></a>

<a href="https://s1.51cto.com/oss/201710/26/d424fc43dd876ef3ee6ee1c2dd2d01d9.png" target="_blank"></a>

顯示出來就是沒有邊框的視窗

<a href="https://s3.51cto.com/oss/201710/26/31aa6978fd151d2e2f466cd6319f881b.png" target="_blank"></a>

使視窗不能伸縮:

  setResizable();方法,寫false就是令視窗不能伸縮,

将尺寸定死,true則反之:

<a href="https://s5.51cto.com/oss/201710/26/7287a342ef046cac854125e5dc10b1f6.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/26/834122a8d9ec944f9b2deee83e95b076.png" target="_blank"></a>

視窗的狀态:

setState();寫1就令視窗運作時就縮在工作列,寫0則無改變:

<a href="https://s3.51cto.com/oss/201710/26/3300780d522512eb77834218c98f3316.png" target="_blank"></a>

運作結果:

<a href="https://s4.51cto.com/oss/201710/26/b557d120f4db032394a99af85c882f95.png" target="_blank"></a>

設定視窗對象的預設關閉方式:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

直接關閉虛拟機

setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

隐藏關閉,對象不會銷毀

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

銷毀對象關閉

視窗标題:

   setTitle();方法,可以設定視窗的标題:

<a href="https://s5.51cto.com/oss/201710/26/3ac12be2771a55414f3e7bc5de23570d.png" target="_blank"></a>

<a href="https://s4.51cto.com/oss/201710/26/49bb6c8915fa7c6447f5bdd6019d856f.png" target="_blank"></a>

添加按鈕:

  使用JButton來new出一個按鈕對象,像建構視窗一樣使用setBounds把标簽顯示的位置坐标設定好,再使用視窗對象通路add();方法把按鈕元件添加到視窗上:

<a href="https://s1.51cto.com/oss/201710/26/244c3e9097a0eb2204e8e5453aa96ad1.png" target="_blank"></a>

<a href="https://s3.51cto.com/oss/201710/26/d0381f798576362a99f328fe03dd2b8c.png" target="_blank"></a>

添加文本框:

  使用JTextField來new出一個文本框對象,像建構視窗一樣使用setBounds把标簽顯示的位置坐标設定好,再使用視窗對象通路add();方法把文本框元件添加到視窗上:

<a href="https://s1.51cto.com/oss/201710/26/5ea3e5baa2be114ba2d50f86aa1e475c.png" target="_blank"></a>

<a href="https://s3.51cto.com/oss/201710/26/4b8b719416047297706ae0a0f9dc10bc.png" target="_blank"></a>

流式布局:

  FlowLayout是流式布局對象,建構出這個對象再使用setLayout();方法引用這個流式布局對象就可以實作流式布局了:

<a href="https://s1.51cto.com/oss/201710/26/4d15c0683e8484920b480fa1900311b6.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/26/d87e0affcc282dbc128a5e4eed02842a.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/26/95c4d104d0f7bbf092a60b5191a1bc99.png" target="_blank"></a>

流式布局裡的元件會随着視窗的拉動而改變

卡片布局:

  CardLayout是卡片布局對象,可以直接在setLayout();方法裡new這個卡片布局對象,就可以實作流式布局了:  

<a href="https://s3.51cto.com/oss/201710/26/cfddcfbf3730dab493124757ba5d543f.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/26/449783c4777af61112512c0c1625b491.png" target="_blank"></a>

卡片布局就是像卡片一樣,一張張的卡片疊在一起,按下一步就會到下一個卡片界面

本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/1976469,如需轉載請自行聯系原作者

繼續閱讀