重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
效果圖
目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、景泰網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
參考代碼
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?MoveTextFrame?extends?JFrame?{
JLabel?jl;//文字標(biāo)簽
int?speed=2;//移動(dòng)速度
public?MoveTextFrame()?{
jl?=?new?JLabel("文字動(dòng)畫");
jl.setForeground(Color.RED);
add(jl);
setSize(380,?100);//窗口大小
setLocationRelativeTo(null);//窗口居中
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
//設(shè)置定時(shí)器,?每隔25毫秒,改變一次文字標(biāo)簽的位置
Timer?t?=?new?Timer(25,?new?ActionListener()?{
public?void?actionPerformed(ActionEvent?e)?{
int?x?=?jl.getX()+speed;//計(jì)算移動(dòng)后的位置
if(x=390){//如果超過就指定像素,就重新從左邊開水移動(dòng)
x=-30;
}
jl.setLocation(x,?jl.getY());//更新位置
//repaint();
}
});
t.start();
}
public?static?void?main(String[]?args)?{
new?MoveTextFrame();
}
}
思路分析:
使用線程可以做動(dòng)態(tài)效果, 逐步發(fā)生改變, 就是動(dòng)態(tài)的了
效果如圖
參考代碼 ,可以在此基礎(chǔ)上進(jìn)行改造
import?java.awt.event.*;
import?javax.swing.*;
public?class?FrameDemo?extends?JFrame?implements?ActionListener?{
JButton?jb;
public?FrameDemo()?{
jb?=?new?JButton("???靜夜思???");
jb.addActionListener(this);
JPanel?jp?=?new?JPanel();
jp.add(jb);
add(jp);
//?窗口屬性的設(shè)置
setTitle("Frame窗口");//?標(biāo)題
setSize(256,?100);//?窗口大小
setLocationRelativeTo(null);//?窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public?static?void?main(String[]?args)?{
new?FrameDemo().setVisible(true);//?創(chuàng)建窗口實(shí)例,?并讓窗口可見
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
//?計(jì)算彈出框的位置
int?x?=?jb.getLocationOnScreen().x?+?jb.getWidth()?/?2?-?100;
int?y?=?jb.getLocationOnScreen().y?+?jb.getHeight();
MyDialog?md?=?new?MyDialog(x,?y);
Thread?t?=?new?Thread(new?Runnable()?{
@Override
public?void?run()?{
for?(int?i?=?40;?i??200;?i?+=?2)?{
md.setSize(200,?i);
try?{
Thread.sleep(100);
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
}
});
t.start();//啟動(dòng)線程
}
}
class?MyDialog?extends?JDialog?{
public?MyDialog(int?x,?int?y)?{
setTitle("靜夜思");
JLabel?jl?=?new?JLabel("htmlbody床前明月光,疑是地上霜.br?/舉頭望明月,低頭思故鄉(xiāng).br?//div/body/html");
add(jl);
setSize(200,?40);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocation(x,?y);
setVisible(true);
setAlwaysOnTop(true);
}
}
一: 用多線程播放一組圖片, 實(shí)現(xiàn)動(dòng)畫片的效果; 類似于逐幀動(dòng)畫,每個(gè)圖片是動(dòng)畫的一幀
二: 在awt/swing界面里, 可以使用paint方法,去繪制圖形,然后用swing提供的Timer或者多線程技術(shù),去刷新繪制的圖形
三:在JavaFX里, 本身就支持動(dòng)畫,并且封裝了很多動(dòng)畫效果可以直接使用,比如逐幀動(dòng)畫.縮放動(dòng)畫,漸變動(dòng)畫,旋轉(zhuǎn)動(dòng)畫,位置動(dòng)畫等.
強(qiáng)烈推薦使用javaFX來實(shí)現(xiàn)動(dòng)畫, 因?yàn)閖avaFX是現(xiàn)代化的圖形界面工具,具有簡單,強(qiáng)大,組件豐富,跨平臺(tái),支持Html5, 支持表格, 支持動(dòng)畫等多種優(yōu)勢(shì)?
下面是一個(gè)javaFX繪制的動(dòng)態(tài)表格
javaFX動(dòng)態(tài)表格