摘 要 在Java語言的學(xué)習(xí)中,初學(xué)者為了進(jìn)一步提高的編程能力,多線程的編程是十分重要的一個環(huán)節(jié),當(dāng)處理的事務(wù)變得很多的時候,這里主要提供Java語言對多線程程序的簡單處理與應(yīng)用。主要多字符串圖形的重繪來實(shí)現(xiàn)一些動態(tài)效果。
關(guān)鍵詞 Java 多線程 字符串 移動處理
一、對線程的理解
Thread 線程=new Thread(this);//創(chuàng)建線程
Thread顧名思義就是線程的意思,要知道Thread就要先知道線程是什么,它是一個程序的多個執(zhí)行路徑,執(zhí)行調(diào)度的單位,依托于進(jìn)程才能存在。
二、具體實(shí)現(xiàn)方法與代碼
注意:()里和代碼中的中文只是期待一個解釋總要,需要使用代碼的時候需要修改成相應(yīng)的字符串。首先我們需要創(chuàng)建線程,利用類Thread 線程=new Thread(this)開始創(chuàng)建線程,然后創(chuàng)建控制按鈕,進(jìn)行事件處理,我們可以BUTTON 按鈕1 = new 按鈕(\"改變\"),依次BUTTON 按鈕2 = new 按鈕(\"開始\");BUTTON 按鈕3 = new 按鈕(\"停止\");BUTTON 按鈕4 = new 按鈕(\"暫停\")等定義任何你需要的按鈕控件。最后我們再用TextField定義一個文本new TextField()。
三、多線程對字符串處理
導(dǎo)入需要的大類,這里包含用于創(chuàng)建用戶界面和繪制圖形圖像的所有分類。在 AWT 術(shù)語中,諸如按鈕或滾動條之類的用戶界面對象稱為組件。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
對于java.swing這個類包比java.awt提供了更為優(yōu)化的用戶界面,完全取代當(dāng)然說不上。不同的方法總會有不同的應(yīng)用。AWT的界面是通過調(diào)用當(dāng)前系統(tǒng)的界面元素來實(shí)現(xiàn)的,他的樣子完全依賴于系統(tǒng)。而Swing,是后來被重新使用java編寫的。他是完全使用java做出來的,不依賴任何操作系統(tǒng)。所以可以達(dá)成同一程序,在不同操作系統(tǒng)中界面的同一。避免了awt更換運(yùn)行的操作系統(tǒng)后布局、顏色、框架的混亂。而且swing增加了很多新功能新方法,使編程人員能更好的繪制界面。引用了大類后,我們就可以寫一個公共的窗口類,它可以繼承JFrame和接口函數(shù)Runnable,再調(diào)用一個ActionListener做為動作監(jiān)聽函數(shù)。具體寫法的公共類extends(繼承) JFrame implements(接口函數(shù)) Runnable,ActionListener。這里我們寫一個圖像處理的方法來用多線程調(diào)用。首先我們寫出public void paint(Graphics g)其中括號中g(shù)為圖像參數(shù)。我們需要用到方法update(參數(shù)g)來更新,g.setColor(new Color(數(shù)字,數(shù)字,數(shù)字))來設(shè)置顏色,因?yàn)槭穷伾赃@里的數(shù)字范圍是0-255,我們還可以設(shè)置字體g.setFont(new Font(\"字體\", Font.BOLD, 35)),最后再g.drawString(s,x,y)繪出字符串。
從這里開始我們就是重點(diǎn)了,我們需要寫一個run()來調(diào)用上面寫好的函數(shù),這里是線程體,運(yùn)行的地方。最后我們需要定義一個公共窗口方法來排版和呈現(xiàn)。比如:A=this.getContentPane()來得到這個面板,設(shè)置他的大小this.setSize(數(shù)字,數(shù)字)和設(shè)置他的標(biāo)題this.setTitle(\"字符串的移動,jx制作\")。設(shè)置他的位置text.setBounds(數(shù)字,數(shù)字,數(shù)字,數(shù)字);再調(diào)用addActionListener(this)方法對相對性的控件添加監(jiān)聽。再用A.add(控件)添加控件到面板上。就可以方便的把按鈕控件,文本控件添加到面板中了。最后對事件的監(jiān)聽,我們可以寫出一些判斷來執(zhí)行我們所需要的結(jié)果。寫個公共的方法actionPerformed(ActionEvent e),If判斷(e.getSource()==按鈕1)那么s=text.getText()再用repaint(),If判斷(e.getSource()==按鈕2)那么If判斷(!線程.isAlive() )之后就用new Thread(this)新建一個線程來start()來運(yùn)行。移動的機(jī)制主要是每點(diǎn)擊一次按鈕,時間監(jiān)聽就改變一下文本控件在面板中的位置,再重繪一遍,這樣看一起來就像移動一樣。
參考文獻(xiàn):
[1]李鵬,邵明剛.并行計算技術(shù)[J].中國科技信息, 2006(07).
[2]崔立劍,吳平.Java多線程設(shè)計模式研究[J].計算機(jī)與現(xiàn)代化,2006(11).
[3]胡雯,趙海廷.JAVA多線程同步問題研究[J].軟件導(dǎo)刊, 2007(01).
[4]龔成清.Java多線程的創(chuàng)建和線程同步的實(shí)現(xiàn)[J].寧波職業(yè)技術(shù)學(xué)院學(xué)報, 2007(02).
[5]張延軍.Java多線程技術(shù)應(yīng)用研究[J].漯河職業(yè)技術(shù)學(xué)院學(xué)報, 2007(03).