java中GUI的awt和Swing的知识点
剛剛學習了java的GUI,寫了幾個程序,基本熟悉了awt和Swing,下面和大家分享一下知識點
1、JFrame的層次結(jié)構(gòu)
參考:http://tieba.baidu.com/p/2004216123?see_lz=1
Frame 的最底層是 RootPane,
然后是 LayeredPane
再上面就是 ContentPane(默認放控件)
最頂層是 GlassPane(默認透明)
最頂層的 GlassPane 默認是透明的
ContentPane 就是默認盛放控件的那個層次
默認的 ContentPane 就是一個 JPanel
例如: JPanel jp=(JPanel)fr.getContentPane();?
其實 ContentPane 是添加在 LayeredPane 上的一個控件。
而 LayeredPane 和 GlassPane 是直接添加在 RootPane 上的,
RootPane 直接添加在 JFrame 上
2、java.awt.Container
? ? ? ? ? 繼承者 javax.swing.JComponent
setOpaque(boolean isOpaque) //設置是否透明? 透明為false
例如:
JPanel jp=(JPanel)fr.getContentPane();?
jp.setOpaque(false);//設置透明
3、任何組建都可以設置大小和位置
例如:
bu2 = new JButton("Open");
bu2.setSize(80,40);
bu2.setLocation(20, 40);
4、只有Container容器才能設置布局?
例如:
panel.setLayout(new FlowLayout());
注意:
當傳入的參數(shù)為null時,容器內(nèi)的每一個控件都要設置大小和位置
例如:
panel.setLayout(null);
bu2 = new JButton("Open");
bu2.setSize(80,40);
bu2.setLocation(20, 40);
5、任何組件都可以設置字體
例如:
la2 = new JLabel("Tools For Windows8.1&10");
la2.setFont(new java.awt.Font("Dialog",1,20));
注意:
轉(zhuǎn)入的字體必須是一個對象
6、給JLabel和JButton添加圖標
方法一:
在對象初始化時傳入一個圖標
例如:
ico = new ImageIcon(this.getClass().getResource("/Image/壁紙.jpg"));
JButton jb = new JButton(ico);
方法二:
new完對象后,調(diào)用方法添加
例如:
ico = new ImageIcon(this.getClass().getResource("/Image/壁紙.jpg"));
JButton jb = new JButton();
jb.setIcon(ico);
7、如何給JFrame設置背景圖片
通過JLabel來設置:
ico = new ImageIcon(this.getClass().getResource("/Image/壁紙.jpg"));
la1 = new JLabel(ico);
//設置la1距離JFrame0,0,大小為壁紙的大小
//也就是說JFrame的大小也就是壁紙的大小
la1.setBounds(0,0,ico.getIconWidth(),ico.getIconHeight());
fr.setBounds(200, 120, ico.getIconWidth(), ico.getIconHeight());
//添加壁紙
fr.getLayeredPane().add(la1,new Integer(Integer.MIN_VALUE));
//獲取frame的(最上層)面板為了設置其背景顏色
JPanel jp=(JPanel)fr.getContentPane();
jp.setOpaque(false);//設置為透明后,就可以顯示下一層的壁紙了,但是該層上的控件還是可以顯示的
//這一步設置布局非常關鍵,這樣設置可以用于其他組建的定位,設置為null后,每一個組建都要設置大小和位置
panel.setLayout(null);
//接下來就在panel上可以添加控件了,
//注意:
// 每一個控件都要設置大小和位置
fr.add(panel);
fr.setVisable(true);
8、可能出錯的地方
1、沒有fr.setVisable(true);
注意:
任何控件都可以設置為隱藏或者是顯現(xiàn),只是Container下的對象在new出來以后默認是隱藏的
2、添加事件后要導入包
import java.awt.event.*;
轉(zhuǎn)載于:https://www.cnblogs.com/wansho/p/5104346.html
總結(jié)
以上是生活随笔為你收集整理的java中GUI的awt和Swing的知识点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通讯录的初步了解与使用
- 下一篇: 针对“来用”团队项目之NABC分析