import javax.swing.JLabel
import javax.swing.JPanel
public class Test{
private JFrame frame
private String scrolledText
private String str ="滚动文字 Demo"
public static void main(String args[]) {
try{
Test window = new Test()
window.frame.setVisible(true)
}
catch(Exception e){
e.printStackTrace()
}
}
public Test(){
initialize()
}
private void initialize(){
frame.setBounds(100, 100, 500, 375)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
final JPanel panel = new JPanel()
panel.setBackground(Color.WHITE)
panel.setLayout(new BorderLayout())
frame.getContentPane().add(panel, BorderLayout.NORTH)
final JLabel label = new JLabel()
label.setText("New JLabel")
panel.add(label)
label_scrolledText(label)
frame.addComponentListener(
new ComponentAdapter(){
public void componentResized(ComponentEvent arg0){
label_scrolledText(label)
}
})
}
public void label_scrolledText(JLabel label) {
this.scrolledText = this.str
label.setText(scrolledText)
FontMetrics metrics = label.getFontMetrics(label.getFont())
int textW = metrics.stringWidth(label.getText())
Dimension frameSize = frame.getSize()
for (int i = 1i <= (frameSize.width - textW) / 3 - 3i++)
scrolledText += " "
label.setText(scrolledText)
Thread thread = new Thread(new TextChanger(label))
thread.start()
}
}
java.lang.NullPointerException
at Test.initialize(Test.java:26)
at Test.<init>(Test.java:23)
at Test.main(Test.java:16)
公告又不是很多 又所有人都是一样的 为什么每次都读数据库 你直接拿出来放在服务器里面 请求过来了直接将值给他就行了 公告更新由服务器管理 如果还嫌ajax占客户端资源的话 就调大请求间隔吧 又不是需要即时性很高的东西