问题描述
- JAVA如何实现文本框数字等我滚动
-
如何用JAVA实现文本框的数字滚动,按开始即开始滚动,按停止能显示一个数字
解决方案
这代码应该怎么改,一直无法滚动
解决方案二:
感觉应该使用线程,改变文本框的位置实现滚动显示!
解决方案三:
有大神有类似的代码吗?
解决方案四:
启动线程更改数字的值,用个变量标记是否滚动
解决方案五:
public class MyFrame extends JFrame implements Runnable{
JTextField jt1,jt2,jt3;
JLabel jl1,jl2,jl3;
JButton jb1,jb2;
boolean boo=false;
public MyFrame(){
super("简单的抽奖程序");
jt1=new JTextField(10);
jt2=new JTextField(10);
jt3=new JTextField(10);
jl1=new JLabel("请输入号码区间:");
jl2=new JLabel("到");
jl3=new JLabel(" ");
jb1=new JButton("开始抽奖");
jb2=new JButton("停止");
setLayout(new FlowLayout());
add(jl1);add(jt1);add(jl2);add(jt2);add(jt3);add(jb1);add(jb2);add(jl3);
jb1.addActionListener(new jbAction());
jb2.addActionListener(new jb2Action());
}
class jbAction implements ActionListener{
public void actionPerformed(ActionEvent e) {
boo=true;
new Thread().start();
}
}
class jb2Action implements ActionListener {
public void actionPerformed(ActionEvent e) {
boo=false;
jl3.setText("恭喜"+jt3.getText()+"中奖!");
}
}
public static void main(String[] args) {
MyFrame myFrame=new MyFrame();
myFrame.setSize(500, 400);
myFrame.setVisible(true);
}
@Override
public void run() {
while (boo) {
String str1=jt1.getText();
int j1=Integer.parseInt(str1);
String str2=jt2.getText();
int j2=Integer.parseInt(str2);
int s=(int) (j1+(Math.random()*(j2-j1+1)));
String string=Integer.toString(s);
jt3.setText(string);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}