情人節(jié)寫給女朋友Java Swing代碼程序
馬上又要到情人節(jié)了,再不解風(fēng)情的人也得向女友表示表示。作為一個(gè)程序員,示愛的時(shí)候自然也要用我們自己的方式。
這里給大家上傳一段我在今年情人節(jié)的時(shí)候?qū)懡o女朋友的一段簡(jiǎn)單的Java Swing代碼,主要定義了一個(gè)對(duì)話框,讓女友選擇是不是喜歡自己。如果她選了“是”,皆大歡喜,如果她想選“不”,哼哼。。??匆幌陆貓D吧。
代碼效果圖:
接下來不廢話,直接上代碼了。新版本已上傳,也歡迎大家到我的github上下載和改進(jìn)代碼(點(diǎn)此轉(zhuǎn)到github)。
另外就是因?yàn)檫@個(gè)代碼當(dāng)時(shí)是在情人節(jié)的時(shí)候?qū)懙?,?duì)話框標(biāo)題欄的信息也是與情人節(jié)相關(guān),要想在其他的節(jié)日使用,只需要修改幾個(gè)字符串就可以了,我在需要修改的地方都打了中文注釋,大家可以很容易地找到。不過正如我在注釋里寫的那樣,這個(gè)程序頂多是你倆之間一個(gè)溫馨的小玩笑,你要是想今晚嘿嘿嘿的話,真正的禮物還是得備好哦: )
package gift_package; import java.awt.Container; import java.awt.Font; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingConstants; import javax.swing.WindowConstants; /** * A funny code for your lover, which creates a frame that let her/him choose * whether she/he loves you. If she/he choose 'YES', everythingis normal, but * if she/he tries to choose 'NO', something interestingwould happen. First, * the 'NO' button would change its position, it lookes like it attemps to escape * from being clicked. After a couple of rounds, if she/he still want to click * 'NO' button, the 'NO' button and 'YES' button will exchange their position. * Besides, the window will cannot be closed untill the 'YES' button is clicked. * * To use this code, please make sure her/his computer has installed the JRE. * * Note that this code is just a little joke, DO NOT USE IT AS A REAL VALENTIN'S * DAY GIFT, if you want to get laid at Valentin's Day, use ROSE, WINE and FANCY * RESTAURANT, if you want to keep your mate's love, use YOUR HEART. * * @author rainman_zjd * @version initialt version, 2016.3.20 */ public class HappyValentinsDay extends JFrame { private static final long serialVersionUID = 1L; private JLabel label; private JButton button1; private JButton button2; private JDialog dialog1; private int enterCount = 0; private boolean chooseFlag = false; public static final int screenWidth = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(); public static final int screenHeight = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight(); public HappyValentinsDay() { label = new JLabel("Hi, my name is rainman_zjd, I love you, do you love me?", SwingConstants.CENTER); // 自行修改 button1 = new JButton("No, I don't!"); // 按鈕1 button2 = new JButton("Yes, I do!"); // 按鈕2 dialog1 = new JDialog(this); // 創(chuàng)建一個(gè)新的對(duì)話框,并設(shè)置父窗口為當(dāng)前窗體 windowInitial(); setWindowListener(); }// constructor public HappyValentinsDay(String labelTxt, String bt1Txt, String bt2Txt) { label = new JLabel(labelTxt, SwingConstants.CENTER); button1 = new JButton(bt1Txt); button2 = new JButton(bt2Txt); dialog1 = new JDialog(this); windowInitial(); chooseFlag = true; setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setVisible(true); }// constructor_String /** * 窗體初始化,使用的是絕對(duì)布局 */ private void windowInitial() { setDialog(dialog1, "Awesome!", "Meeting you is the luckest thing in my life!"); // 自行修改 label.setFont(new Font("", Font.BOLD, 17)); label.setBounds(0, 30, 480, 20); /** * 以匿名內(nèi)部類的方式為按鈕1添加鼠標(biāo)事件監(jiān)聽器,當(dāng)鼠標(biāo)進(jìn)入按鈕1后將突然改變自己的位置 */ button1.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) {return;} @Override public void mousePressed(MouseEvent e) {return;} @Override public void mouseExited(MouseEvent e) {return;} @Override public void mouseEntered(MouseEvent e) { switch(enterCount) { case 0: button1.setBounds(75, 60, 110, 30); HappyValentinsDay.this.repaint(); ++enterCount; break; case 1: button1.setBounds(75, 110, 110, 30); HappyValentinsDay.this.repaint(); ++enterCount; break; case 2: button1.setBounds(155, 60, 110, 30); HappyValentinsDay.this.repaint(); ++enterCount; break; case 3: button1.setBounds(75, 110, 110, 30); HappyValentinsDay.this.repaint(); ++enterCount; break; case 4: button1.setBounds(310, 110, 110, 30); button2.setBounds(75, 110, 110, 30); HappyValentinsDay.this.repaint(); ++enterCount; break; case 5: button1.setBounds(75, 110, 110, 30); button2.setBounds(310, 110, 110, 30); HappyValentinsDay.this.repaint(); enterCount = 0; break; }// seitch_entercount }// mouseEntered @Override public void mouseClicked(MouseEvent e) { dialog1.setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); }// mouseClicked });// MouseListener button1.setBounds(70, 110, 110, 30); button1.setFont(new Font("", Font.BOLD, 13)); /** * 以匿名內(nèi)部類的方式為按鈕2添加鼠標(biāo)事件監(jiān)聽器,按下時(shí)顯示對(duì)話框 */ button2.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) {return;} @Override public void mousePressed(MouseEvent e) {return;} @Override public void mouseExited(MouseEvent e) {return;} @Override public void mouseEntered(MouseEvent e) {return;} @Override public void mouseClicked(MouseEvent e) { dialog1.setVisible(true); chooseFlag = true; setDefaultCloseOperation(DISPOSE_ON_CLOSE); }// mouseClicked });// MouseListener button2.setBounds(310, 110, 110, 30); button2.setFont(new Font("", Font.BOLD, 13)); Container c = getContentPane(); c.setLayout(null); c.add(label); c.add(button1); c.add(button2); setTitle("Happy Valentin's Day!"); // 自行修改 setBounds(screenWidth/2-250, screenHeight/2-100, 500, 200); setResizable(false); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); }// windowInitial /** * 設(shè)置對(duì)話框?qū)傩? * @param diag * @param tittle * @param txt */ private void setDialog(JDialog diag, String tittle, String txt) { JLabel diagLabel = new JLabel(txt, SwingConstants.CENTER); diagLabel.setFont(new Font("", Font.BOLD, 17)); diagLabel.setBounds(0, 40, 430, 20); JButton diagBut = new JButton("Confirm"); diagBut.setFont(new Font("", Font.BOLD, 14)); diagBut.setBounds(155, 100, 100, 30); diagBut.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent e) {return;} @Override public void mousePressed(MouseEvent e) {return;} @Override public void mouseExited(MouseEvent e) {return;} @Override public void mouseEntered(MouseEvent e) {return;} @Override public void mouseClicked(MouseEvent e) { diag.dispose(); if (chooseFlag) System.exit(0); }// mouseClicked }); diag.setTitle(tittle); diag.setBounds(screenWidth/2-225, screenHeight/2-100, 450, 200); diag.setLayout(null); diag.add(diagBut); diag.add(diagLabel); }// setDialog /** * 設(shè)置單擊窗口關(guān)閉按鈕時(shí)的動(dòng)作 */ private void setWindowListener() { this.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent e) {return;} @Override public void windowIconified(WindowEvent e) {return;} @Override public void windowDeiconified(WindowEvent e) {return;} @Override public void windowDeactivated(WindowEvent e) {return;} @Override public void windowClosed(WindowEvent e) {return;} @Override public void windowActivated(WindowEvent e) {return;} @Override public void windowClosing(WindowEvent e) { if(!chooseFlag) { String labelTxt = "Is your default choose \"Yes, I do!\"?"; // 自行修改 new HappyValentinsDay(labelTxt, "NO", "YES"); }// if }// windowClosing });// WindowListener }// setWindowListener public static void main(String[] args) { HappyValentinsDay myApp = new HappyValentinsDay(); myApp.setVisible(true); }// main }/*HappyValentinsDay*/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家,祝大家情人節(jié)快樂
- java swing 創(chuàng)建一個(gè)簡(jiǎn)單的QQ界面教程
- java實(shí)現(xiàn)銀行家算法(Swing界面)
- Java圖形界面Swing原理及用法解析
- Java Swing仿QQ登錄界面效果
- Java圖形用戶界面設(shè)計(jì)(Swing)的介紹
- 使用java swing實(shí)現(xiàn)qq登錄界面示例分享
- Java swing實(shí)現(xiàn)支持錄音等功能的鋼琴程序
- 跟我學(xué)Java Swing之游戲設(shè)計(jì)(1)
- 跟我學(xué)Java Swing之游戲設(shè)計(jì)(2)
- Java Swing程序設(shè)計(jì)實(shí)戰(zhàn)
相關(guān)文章
spring mvc實(shí)現(xiàn)文件上傳并攜帶其他參數(shù)的示例
本篇文章主要介紹了spring mvc實(shí)現(xiàn)文件上傳并攜帶其他參數(shù)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02使用SpringBoot跨系統(tǒng)調(diào)用接口的方案
這篇文章主要介紹了使用SpringBoot跨系統(tǒng)調(diào)用接口的方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01Java實(shí)現(xiàn)超市會(huì)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)超市會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03PowerJob的OmsLogHandler工作流程源碼解析
這篇文章主要為大家介紹了PowerJob的OmsLogHandler工作流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12spring boot@EnableXXXX注解編程模型講解
這篇文章主要介紹了spring boot@EnableXXXX注解編程模型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09使用工具類-java精確到小數(shù)點(diǎn)后6位
這篇文章主要介紹了使用工具類-java精確到小數(shù)點(diǎn)后6位,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10SpringBoot Validation入?yún)⑿r?yàn)國(guó)際化的項(xiàng)目實(shí)踐
在Spring Boot中,可以使用Validation和國(guó)際化來實(shí)現(xiàn)對(duì)入?yún)⒌男r?yàn),本文就來介紹一下SpringBoot Validation入?yún)⑿r?yàn)國(guó)際化,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10