進口?Java . awt . dimension;
進口?Java . awt . font;
進口?Java . awt . headless exception;
進口?Java . awt . point;
進口?Java . awt . event . action event;
進口?Java . awt . event . action listener;
進口?Java . awt . event . component adapter;
進口?Java . awt . event . component event;
進口?javax . swing . jframe;
進口?javax . swing . jlabel;
進口?javax . swing . joptionpane;
進口?javax . swing . j viewport;
進口?javax . swing . timer;
公?班級?Test84?延伸?JFrame?{
私人?定時器?計時器;
私人?JLabel?查看;
私人?JViewport?窗戶;
公?靜電?作廢?main(String[]?參數)
{
JFrame?frm?=?新的?test 84(" Marquee ");
frm . setdefaultcloseoperation(EXIT _ ON _ CLOSE);
frm . pack();
frm . set visible(true);
}
公?Test84(字符串?標題)?摔投?headless例外
{
超級(標題);
init components();
addComponentListener(新?ComponentAdapter()。{
公?作廢?component resized(component event?e)
{
主播?=?新的?point();
anchor.x?=?-window.getExtentSize()。寬度;
timer . start();
}
});
定時器?=?新的?定時器(100,?新的?ActionListener()?{
公?作廢?actionPerformed(ActionEvent?e)
{
animate();
}
});
timer . setinitialdelay(0);
}
私人?作廢?initComponents()
{
字符串?s?=?joptionpane . showinputdialog(null,?“請輸入文字達到效果:“);
觀點?=?新的?JLabel(s);
view . set font(font . decode(" Dialog-BOLD-36 "));
view.setForeground(Color。藍色);
窗戶?=?新的?JViewport();
window.setView(視圖);
getContentPane()。添加(窗口);
}
點?主播;
私人?作廢?動畫()
{
維度?extSize?=?window . getextentsize();
維度?viewSize?=?view . getpreferredsize();
anchor.x?+=?5;//設置移動速度。
window.setViewPosition(錨點);
如果?(anchor.x?& gt?視圖大小.寬度)
anchor.x?=?-extsize . width;
}
}