JAVA GUI重要知识点学习心得
本人最近學習javaGUI發現重要知識點和思想用的頻率很高,把它們整理下來一起分享
1:JFrame窗口和JDialog窗口
? ? 一班JFrame用作主窗口,JDialog用作彈出窗口(即對話框),但JFrame也可以用作彈出窗口并設置一些功能。下面就看一個這類窗口的基本構造方法:很多適用于窗體額方法其部件也很適用的。
import java.awt.*; import javax.swing.*; public class JFrame窗口 {public static void creatjframe(String title){JFrame jf=new JFrame(title); //實例化一個JFrame對象Container container=jf.getContentPane(); //獲取一個容器JLabel jl=new JLabel("這是第一個JFrame窗體",JLabel.CENTER); //標簽劇中//jl.setHorizontalAlignment(SwingConstants.CENTER);//居中對齊等價替換為上一行container.add(jl); //將標簽添加到容器中container.setBackground(Color.yellow); //背景顏色jf.setResizable(false); //不可拉伸jf.setVisible(true); //設置可見jf.setSize(400,300); //設置大小jf.setLocationRelativeTo(null);// 劇中放置,要在setsize后面放置jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//窗體關閉方式}public static void main(String[] args){creatjframe("創建一個JFrame窗體");} }這里做一些說明:1):一般情況下不這樣構造,而是采用構造類繼承JFrame這樣,再類中構造,例如:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public class jframe extends JFrame{?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public jframe(){ this.****;this.*** ?} ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? public static void main(String[] args){new jframe();} ? ? }
? ? ? ? 這樣構造要方便很多,因為此類本身就是一個窗體的繼承類,他擁有窗體的性質。可以使用this.setVisible(true);函數也可以直接用setvisible(true);有個小技巧就是使用函 ? ? ? ?數時候先點一個點會出來可以使用的函數附圖如下.
2)窗體的背景顏色是有層次的并且會被遮擋,例如container設置額容器顏色會遮擋jframe的背景顏色,而JPanel的背景顏色會遮住container容器的背景顏色,JPanel添加子類器件,子器件的背景顏色會遮住JPanel的顏色。元件的層次與原件添加的位置有關(添加再哪里)。
3)居中設置為啥要再setsize后面?因為如果再setsize之前就設置劇中窗體沒有大小就會默認一個點再屏幕中間,設置大小會以這個點向右下方擴散而不是以這個點為中心擴散。
2:元件
? ? ? ? ?1):JButton:+鼠標監聽事件(這里的鼠標監聽也可以寫成類繼承監聽接口,添加監聽。再類中重寫actionperforded函數。個人喜好問題)
JButton bl=new JButton("彈出對話框");bl.setBounds(10,20, 100, 21);bl.setContentAreaFilled(false);//透明bl.setBorderPainted(false);bl.setFocusPainted(false); bl.addActionListener(new ActionListener() {//建立監聽事件public void actionPerformed(ActionEvent e){ if(e.getsourse()==b1){****;}}});? ? ? ? ? ?監聽的如果是按鈕數組,則for(;i<**;i++){if(e.getsourse()==b[i]){ ? ? ? //添加要監聽的事件 ? ? ? ? ? ? ? }}
不僅僅按鈕可以添加鼠標監聽,文本框,復選框都可以添加鼠標監聽事件。
? ?2)其他元件
? ? ? ? ? ??JPanel panel1 = new JPanel();//面板元件。可使用布局,可添加元件。本身可以作為一個容器也可以作為局部容器。常用于畫圖,詳細可參考我的另一篇五子棋博客;
? ? ? ? ? ??JTextField jt1=new JTextField("8",10);文本有數字‘8’的單行文本。可添加監聽。
? ? ? ? ? ?JTextArea jt=new JTextArea(3,10);//創建文本區系數代表大小,純文本多行區域
? ? ? ? ? ?JCheckBox jc2=new JCheckBox("2");復選框
3)容器+鼠標點擊事件
? ?常見有container容器,JPanel面板添加鼠標點擊事件,點擊的坐標可由int x=e.getX();獲得,int y=e.getY();獲得。可以在這個點添加你需要添加的事情,詳情可以看我的那篇五子棋實現過程。
4)常見布局:setlayout(new 布局方式())
? ? ?絕對布局:setlayout (null);元件需要用setbounds(int,int,int,int)分別代表坐標和長寬。(setbounds=setsize(int,int)設置大小加setlocation(int,int)設置位置(單位像素。))絕對布局很少用。
? ? ?邊界布局:borderlayout(),分為east,west,north,south,center。五個方向,一班中間偏大,其他部位沒有使用會自動被其他位置擠占,可以使用上中下三部分,也可以使用左中右三部分。經常使用此類布局。
? ? 流布局:floutlayout(int,int,int),默認劇中對齊,按排版滿就換行,局部容器使用該布局較多。//第一個int表示排列方式,有0左,1中間,2右;
? ? 網格布局:gridlayout(int,int,int,int)網格布局設置特定數量,對于整齊對稱密集排布比較好用。參數代表行列,左右上下間距。
?? 還有高級布局管理器 box,girdbaglayout等。
5)添加背景圖片,圖標,
? ? ? 添加背景圖片:
? ? ? ?? URL url=myimageicon.class.getResource("image/beimian.jpg");
? ? ?? image=Toolkit.getDefaultToolkit().getImage(url);或者
? ? ? ??ImageIcon imageicon=new ImageIcon(this.getClass().getResource("/image/beimian.jpg"));
? ? ? ?? image=imageicon.getImage();
有一:使用JLabel,(詳細代碼百度很多)二使用JPanel的paintComponent方法,重寫該函數在里面drawimage(image, 0, 0,getWidth(),getHeight(), this)填充,然后將添加的容器設置成透明就可以。
? ? 添加圖標
? imageicon/icon的方法
? ? ? ? ?? ImageIcon imageicon=new ImageIcon(this.getClass().getResource("/image/beimian.jpg"));
? ? ? ? ? ? jbuttton.seticon(imageicon);
6)添加背景音樂:
? public AudioClip music;//背景音樂
?URL url=Memorize.class.getResource("music/fade2.wav");//源
?{music=Applet.newAudioClip(url);}
music.play();開始
如果循環需要添加:
try {
???Thread.sleep(40);
??} catch (InterruptedException e1) {
???e1.printStackTrace();
??}
??music.loop();
此外,這種循環點擊X音樂還會繼續播放,需要設置一個關閉的監聽時間。在主類中implements actionlisterner。在重載函數中添加
addWindowListener(new WindowAdapter(){
???public void windowClosing(WindowEvent e){
???System.exit(0);
???}
???});
總結
以上是生活随笔為你收集整理的JAVA GUI重要知识点学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java笔记数组小知识点
- 下一篇: 简单的五子棋操作用两种方法实现