第三個java程式(表白小卡片)
前言:
向女神表白啦,作為一個程式設計師,當然也有愛情啦。只不過,雖然前面兩個程式都只是學習了基礎的語法結構和向量雜湊表。這裡涉及的是Swing,awt圖形使用者介面和一點檔案輸入輸出流的知識。
表白程式碼如下:
另附:裡面的音樂和圖片可以放在一個自己建立的包裡面,也可以放在src裡面,或者使用絕對路徑。至於佈局,我自己的使用的是簡單的排版,簡單的繼承。後面的程式會慢慢實現。
老規矩:建立專案,包,類。
import java.awt.*;//匯入java.awt包中的類
import java.io.*;//匯入java.io輸入輸出流類
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.util.Date;
import javax.sound.sampled.*;//匯入javax.sound.sampled包中的音訊類
import java.awt.event.*;//匯入java.awt.event包中定義的事件類
import javax.swing.*;//匯入java.swing包中的類
import java.io.*;
import javax.sound.sampled.*;
public class three{//主類
public static void main(String[] args) {//主方法
MainWnd w = new MainWnd();//建立並顯示主視窗物件
w.repaint();//呼叫視窗的重繪方法
try {//播放過程中可能會丟擲勾選異常
//為音訊檔案建立起音訊輸入流
File f = new File("src/東京.wav");//音訊檔案
AudioInputStream ais = AudioSystem.getAudioInputStream(f);
//System.out.println(ais.getFormat());//獲取音訊格式
Clip c = AudioSystem.getClip();//獲取播放音訊的片段物件
c.open(ais);//在片段物件中開啟音訊輸入流ais
c.setFramePosition(0);//設定播放起始位置
//System.out.println("Start");
c.start();//開始播放音訊
Thread.sleep(100000);//休眠等待100秒,否則音訊播放完程式就結束了
c.close();//關閉片段物件
//System.out.println("Close");
}
catch(Exception e) {System.out.println(e.getMessage());}
}
}
class MainWnd extends JFrame{//定義主視窗類:繼承並擴充套件視窗類JFrame
public MainWnd() {//構造方法完成初始視窗化的功能
String []s = {null,"me","you"};
ImageIcon[]ic= {null,new ImageIcon("src\\img1.gif"),
new ImageIcon("src\\img2.gif")};
int []ih = {0,JLabel.LEFT,JLabel.CENTER};
int []iv = {0,JLabel.CENTER,JLabel.BOTTOM};
Container c = getContentPane();
c.setLayout(new FlowLayout(FlowLayout.RIGHT));
for(int i=0;i<3;i++)
{
JLabel aLabel = new JLabel(s[i],ic[i],JLabel.LEFT);
if(i>0)
{
aLabel.setHorizontalTextPosition(ih[i]);
aLabel.setVerticalTextPosition(iv[i]);
}
c.add(aLabel);
}
setSize(460,300);//設定視窗尺寸
setLocation(100,100);//設定視窗位置
setVisible(true);//設定視窗時顯示或隱示
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關閉視窗時退出程式
}
public void paint(Graphics g) {//重寫繪圖方法paint()
super.paint(g);//呼叫超類的paint()方法
Font ef = new Font("TimesRoman",Font.PLAIN,24);//建立字型物件
g.setFont(ef);//設定字型
g.setColor(Color.PINK);//設定繪圖顏色
g.drawString("I Love you", 20, 80);//顯示英文資訊
Font cf = new Font("楷體",Font.PLAIN,24);//選擇字型
g.setFont(cf);//設定字型
g.drawString("為你寫一首歌", 20, 120);//顯示中文資訊
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
LocalDate today = LocalDate.now();
LocalDate oldDate = LocalDate.of(2015, 12,23);
Period p = Period.between(oldDate, today);
String n1 =Integer.toString(p.getYears()) ;
String n2 = Integer.toString(p.getMonths());
String n3 = Integer.toString(p.getDays());
Font kf = new Font("TimesRoman",Font.PLAIN,22);//建立字型物件
g.setFont(kf);//設定字型
g.setColor(Color.PINK);//設定繪圖顏色
g.drawString(" -I&Y一起"+n1+"年"+n2+"月"+n3+"天", 20, 80);
g.setColor(Color.PINK);//設定填充顏色
g.fillRect(20, 150, 100,100);//畫一個實心矩陣
g.setColor(Color.RED);//設定繪圖顏色
g.drawRect(20, 150, 100,100);//畫一個矩形框,此處是為上面的實心矩形加框
}
}
開啟時顯示此畫面,後臺播放音樂。圖片和音樂都可以切換,這裡的矩陣用draw方法繪畫的,都可以更改,時間是當前時間與一個特定時間的差值,也可以改變。
後記:
衝鴨,第四個實驗要來了哦。這個有不理解的或者有大神有更好的結構的私戳我哦,謝謝。
相關文章
- 表白小程式
- 微信小程式實現卡片左右滑動效果微信小程式
- 浪漫表白程式碼
- 十款程式碼表白特效,一個比一個浪漫!特效
- 微信公眾號回覆小程式卡片如何實現?
- 一個程式設計師的愛情表白書程式設計師
- Python電影售票系統(第三個小程式)Python
- Java程式設計思想——知識卡片01_02Java程式設計
- 羊了個羊有第三關嗎?微信小程式羊了個羊有第三關嗎微信小程式
- 校園表白牆告白牆表白網站程式原始碼搭建教程網站原始碼
- 趣文:一個程式設計師的愛情表白書程式設計師
- 微信小程式swiper實現 句子控app首頁滑動卡片微信小程式APP
- 小程式下一破局點?釘釘小程式卡片,應用與平臺的深度整合
- Python打造最強表白程式Python
- 前端程式設計師表白神器前端程式設計師
- 【程式設計題】黑白卡片程式設計
- 表白程式碼製作(附原始碼)原始碼
- 高科技表白 程式猿的福音!
- 用 JavaScript 寫一個卡片小遊戲JavaScript遊戲
- 實戰|一個表白牆引發的“血案”
- 小鑫の日常系列故事(五)——卡片遊戲 (sdut oj)遊戲
- java實現一個簡單的爬蟲小程式Java爬蟲
- 微信、三星合作推出“負一屏卡片”和"微信小程式側屏"功能微信小程式
- 對delphi的質疑,一個真正的VC程式設計師的表白 (轉)C程式程式設計師
- 幾條曲線構建Android表白程式Android
- 程式設計師們的愛情表白書程式設計師
- Java 初學者做的第一個微信小程式--關於Java基礎Java微信小程式
- 小饒學程式設計之JAVA SE第三部分——MySQL基礎程式設計JavaMySql
- 程式語言收入榜 Java排第三Java
- 如何開發第三方小程式元件元件
- 小程式排名第三-我又焦慮了
- Java程式設計小技巧(1)——方法傳回兩個物件Java程式設計物件
- 520表白小程式設計Python程式碼詳解(PyQt5介面,B站動漫風)程式設計PythonQT
- 卡片遊戲遊戲
- 分享兩個小程式
- 幾個 Haskell 小程式Haskell
- 微信小程式開發:頁面分享卡片、風格選擇、通道啟用等可配置微信小程式
- 「小程式JAVA實戰」小程式模組頁面引用(18)Java