java的GUI實現(xiàn)簡單切換界面
本文實例為大家分享了java GUI實現(xiàn)簡單切換界面的具體代碼,供大家參考,具體內(nèi)容如下
1.關(guān)于java的GUI簡單切換界面
在剛開始學(xué)習(xí)java的gui界面設(shè)計的時候因為課本上沒有相關(guān)切換界面的介紹,所以如何進行簡單的一個界面切換困擾了我很久。因此我上網(wǎng)看了一些代碼,卻發(fā)現(xiàn)網(wǎng)上的大多數(shù)代碼都很繁瑣,仔細看下去感覺有許多冗余,雖然那些代碼達到了切換界面的目的,但也有其它一些我暫時用不上的功能。
簡而言之,就是網(wǎng)上這部分的代碼不夠精簡。于是我開始單單把這一簡單的功能剝離出來。廢話不多說還是先上代碼吧,想說的話都在注釋里。 視圖部分代碼:
import java.awt.BorderLayout; import javax.swing.*; public class View extends JFrame { ?? ?public void view() ?? ?{ ?? ??? ?ViewAction exwpAction=new ViewAction(this);//提前定義好動作對象 ?? ??? ?setLayout(new BorderLayout());//使用BorderLayout布局 ?? ??? ?setSize(400,400);//設(shè)置界面大小 ?? ??? ?this.setTitle("視圖1界面");//設(shè)置界面名稱 ?? ??? ?JButton eb=new JButton("視圖2");//設(shè)置切換的按鈕eb ?? ??? ?JLabel tip_l=new JLabel("視圖1",0);//界面的內(nèi)容,這里用一個標簽來替代具體內(nèi)容,后面的“0”是為了使這個標簽居中對齊 ?? ??? ?eb.addActionListener(exwpAction);//為eb這個按鈕添加按鍵監(jiān)聽 ?? ??? ?add(tip_l, BorderLayout.CENTER);//將tip_l這個標簽添加到布局的中間 ?? ??? ?add(eb, BorderLayout.SOUTH);//將按鈕eb添加到布局的下方 ?? ??? ?setVisible(true);//使視圖可視化 ?? ?} ?? ?public void view2() ?? ?{ ?? ??? ?ViewAction exwpAction=new ViewAction(this); ?? ??? ?setLayout(new BorderLayout()); ?? ??? ?setSize(400,400); ?? ??? ?this.setTitle("視圖2界面"); ?? ??? ?JButton eb=new JButton("視圖1"); ?? ??? ?JLabel tip_l=new JLabel("視圖2",0); ?? ??? ?eb.addActionListener(exwpAction); ?? ??? ?add(tip_l, BorderLayout.CENTER); ?? ??? ?add(eb, BorderLayout.SOUTH); ?? ??? ?setVisible(true); ?? ?} }
動作部分代碼:
import java.awt.event.ActionEvent; public class ViewAction implements java.awt.event.ActionListener { ?? ?/* ?? ? * 這一部分是因為我把界面和動作分開成兩個類來寫了才需要進行對象的傳遞如果動作和界面在一個對象中寫的話就不需要傳入對象了 ?? ? */ ?? ?View v=new View();//先定義一個View對象在切換界面的時候會使用到 ?? ?public ViewAction(View v)//將外界的View對象傳入這個類里? ?? ?{ ?? ??? ?this.v=v; ?? ?} ?? ?public void actionPerformed(ActionEvent event) ?? ?{ ?? ?Object object=event.getSource();//創(chuàng)建事件源對象 ?? ?switch(event.getActionCommand()){ ?? ?//如果按下視圖1 ?? ?case "視圖1": ?? ??? ?//這里之所以先創(chuàng)建新視圖再關(guān)閉舊視圖是因為反過來的話我們會發(fā)現(xiàn)延遲看上去會有一些難受 ?? ??? ?new View().view();//new一個View類并調(diào)用里面的view函數(shù) ?? ??? ?v.setVisible(false);//關(guān)閉穿進來的那個類的視圖 ?? ??? ?break; ?? ?//如果按下視圖2 ?? ?case "視圖2": ?? ??? ?new View().view2(); ?? ??? ?v.setVisible(false); ?? ??? ?} ?? ?} }
主類部分代碼:
public class Main { ?? ?public static void main(String[] args) { ?? ??? ?View v=new View(); ?? ??? ?v.view(); ?? ?} }
運行效果:
運行主類后:
點擊視圖2后
點擊視圖1后
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java設(shè)計模式之代理模式原理及實現(xiàn)代碼分享
這篇文章主要介紹了Java設(shè)計模式之代理模式原理及實現(xiàn)代碼分享,設(shè)計代理模式的定義,靜態(tài)代理,動態(tài)代理,jdk動態(tài)代理實現(xiàn)步驟,原理及源碼等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。2017-11-11springboot實現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息
本文主要介紹了springboot實現(xiàn)公眾號接收回復(fù)消息和超過5秒被動回復(fù)消息,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05通過Maven進行jedis連接redis的實現(xiàn)
這篇文章主要介紹了通過Maven進行jedis連接redis的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Java實現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例
這篇文章主要介紹了Java實現(xiàn)的模糊匹配某文件夾下的文件并刪除功能,涉及java針對目錄與文件的遍歷、匹配、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02