亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

貼一個簡單的擊鍵類Java小游戲

系統 2706 0
游戲內容:單詞由窗口上部落下,玩家在單詞掉落到窗口底部前,輸入該單詞,輸入正確后,單詞消失。這只是個簡單的示例,沒有做成績統計等相關功能。

截圖:


    
package fun.dwords;
import ...;
public class DWords extends JFrame {
	String[] words = { "good", "slow", "goods", "goodbye", "bye", "byte",
			"bits", "sister", "monkey", "word", "world", "left", "leave" };
	JPanel panel;
	Image img = new ImageIcon("background/jessica_alba.jpg").getImage();

	public DWords() {
		panel = new JPanel() {
			@Override
			public void paint(Graphics g) {
				g.drawImage(img, 0, 0, null);
				super.paintChildren(g);
			}

		};
		add(panel);
		panel.setLayout(null);

		JPanel btnPanel = new JPanel();
		add(btnPanel, BorderLayout.SOUTH);
		JButton btnStart = new JButton("Start");
		btnPanel.add(btnStart);
		btnStart.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Thread thd = new Thread() {
					public void run() {
						downWords();
					}
				};
				thd.start();
				DWords.this.requestFocus();
			}
		});

		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(500, 400);
		setTitle("word  word  down...");
		setVisible(true);
		this.requestFocus();
	}

	public void resetWords() {
		Component[] lb = panel.getComponents();
		for (int i = 0; i < lb.length; i++) {
			WordLabel wl = (WordLabel) lb[i];
			wl.reset();
		}
	}

	public void downWords() {
		Random rand = new Random(System.currentTimeMillis());

		for (int i = 0; i < words.length; i++) {
			WordLabel wl = new WordLabel(words[i]);
			wl.setForeground(new Color(255, 0, 0));
			panel.add(wl);
			wl.setBounds(rand.nextInt(panel.getWidth() - 50), 0, 120, 25);
			panel.validate();

			addKeyListener(wl);
			Thread thd = new Thread(wl);
			thd.start();

			try {
				Thread.sleep(2000);
			} catch (InterruptedException ex) {
			}
		}
	}

	static String fmtHeader = "<html><span style=\"color:red\">";
	static String fmtMiddle = "</span><span style=\"color:black;\">";
	static String fmtTail = "</span></html>";

	private class WordLabel extends JLabel implements Runnable, KeyListener {
		volatile boolean removed = false;
		volatile String fmtWord;
		String word;
		int idx = 0;

		public WordLabel(String word) {
			super(fmtHeader + fmtMiddle + word + fmtTail);
			this.fmtWord = fmtHeader + fmtMiddle + word + fmtTail;
			this.word = word;
		}

		public void run() {
			int y = getY();
			while (y < getParent().getHeight()) {
				y += 2;

				setText(fmtWord);
				setLocation(getX(), y);

				if (removed) {
					break;
				}
				try {
					Thread.sleep(150);
				} catch (InterruptedException ex) {

				}
			}
			JPanel panel = (JPanel) getParent();
			panel.remove(this);
			DWords.this.removeKeyListener(this);
			panel.validate();
			panel.repaint();
		}

		@Override
		public void keyPressed(KeyEvent e) {
			// TODO Auto-generated method stub

		}

		@Override
		public void keyReleased(KeyEvent e) {
		}

		@Override
		public void keyTyped(KeyEvent e) {
			char c = e.getKeyChar();
			if (c == word.charAt(idx)) {
				idx++;
				if (idx == word.length()) {
					removed = true;
					DWords.this.resetWords();
				}
			} else {
				idx = 0;
			}

			if (idx > 0) {
				fmtWord = fmtHeader + word.substring(0, idx) + fmtMiddle
						+ word.substring(idx) + fmtTail;
			} else {
				fmtWord = fmtHeader + fmtMiddle + word.substring(idx) + fmtTail;
			}

		}

		public void reset() {
			idx = 0;
			fmtWord = fmtHeader + fmtMiddle + word.substring(idx) + fmtTail;
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final DWords dw = new DWords();
		new Thread() {
			public void run() {
				dw.downWords();
			}
		}.start();
	}

}

  

貼一個簡單的擊鍵類Java小游戲


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 久久99国产精品久久99 | 狠狠色丁香婷婷综合最新地址 | 中文字幕不卡一区 | 久久精品视频一区 | 在线观看精品国语偷拍 | 久久夜色tv网站免费影院 | 色激情综合网 | 欧美区一区 | 日本人xxxxxxx中国 | 久久国产成人福利播放 | 狠狠色丁香婷婷综合欧美 | www国产| 日本在线一区二区 | 中文国产成人精品久久久 | 欧美经典人人爽人人爽人人片 | a v在线男人的天堂观看免费 | 欧美色视频在线观看 | 九九热这里只有国产精品 | 亚州毛色毛片免费观看 | 天天操天天碰 | 四虎影视永久免费观看网址 | 亚洲精品久久久 | 2018久久久国产精品 | 在线久久 | 香蕉网在线播放 | 老司机精品在线观看 | 久久精品亚洲欧美va | 精品一区二区三区在线观看 | 久久riav.com| 香蕉视频在线免费播放 | 按摩一级片 | 一本大道加勒比久久综合 | 国产日韩一区二区三区 | 色综合合久久天天综合绕视看 | 视频大全在线观看免费 | 欧美激情一区二区三级高清视频 | 在线视频97| 久久只精品 | 99九九久久| 另类综合视频 |