package org.welcomejframe;import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class WelcomeJFrame extends JFrame {
public WelcomeJFrame(String texts[])
{
super("滚动字");
this.setBounds(300, 240, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
if(texts==null || texts.length==0)
this.getContentPane().add(new RollbyJPanel("Welcome!"));
else
{
this.getContentPane().setLayout(new GridLayout(texts.length,1));
for(int i=0;i<texts.length;i++)
{
this.getContentPane().add(new RollbyJPanel(texts[i]));
}
}
this.setVisible(true);
}
public WelcomeJFrame()
{
this(null);
}
private class RollbyJPanel extends JPanel implements ActionListener,Runnable
{
JTextField text_word,text_sleep;
JButton button_start,button_interrupt;
JTextField text_state;
Thread thread_rollby;
int sleeptime;
RollbyJPanel(String text)
{
this.setLayout(new GridLayout(2,1));
char space[] = new char[100];
java.util.Arrays.fill(space,' ');
text_word = new JTextField(text+new String(space));
this.add(text_word);
JPanel panel_sub = new JPanel(new FlowLayout(FlowLayout.LEFT));
this.add(panel_sub);
panel_sub.add(new JLabel("sleep"));
this.sleeptime = (int)(Math.random()*100);
text_sleep = new JTextField(""+sleeptime,5);
panel_sub.add(text_sleep);
text_sleep.addActionListener(this);
button_start = new JButton("启动");
panel_sub.add(button_start);
button_start.addActionListener(this);
button_interrupt = new JButton("中断");
panel_sub.add(button_interrupt);
button_interrupt.addActionListener(this);
thread_rollby = new Thread(this);
button_interrupt.setEnabled(false);
panel_sub.add(new JLabel("state"));
text_state = new JTextField(""+thread_rollby.getState(),10);
text_state.setEditable(false);
panel_sub.add(text_state);
}
public void run()
{
while(true)
try
{
String str = text_word.getText();
str = str.substring(1)+str.substring(0,1);
text_word.setText(str);
thread_rollby.sleep(sleeptime);
}
catch(InterruptedException e)
{
break;
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button_start)
{
thread_rollby = new Thread(this);
thread_rollby.start();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(false);
button_interrupt.setEnabled(true);
}
if(e.getSource()==button_interrupt)
{
thread_rollby.interrupt();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(true);
button_interrupt.setEnabled(false);
}
if(e.getSource()==text_sleep)
{
try
{
sleeptime = Integer.parseInt(text_sleep.getText());
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(this, "\""+text_sleep.getText()+"\" 不能转换成整数,请重新输入!!");
}
}
}
}
public static void main(String[] args) {
String []texts = {"Welcome","Hello","Rollby","wo ca "};
new WelcomeJFrame(texts); }}
好像这里有个自动设置等待时间的语句没执行,请问代码哪里需要修改
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class WelcomeJFrame extends JFrame {
public WelcomeJFrame(String texts[])
{
super("滚动字");
this.setBounds(300, 240, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
if(texts==null || texts.length==0)
this.getContentPane().add(new RollbyJPanel("Welcome!"));
else
{
this.getContentPane().setLayout(new GridLayout(texts.length,1));
for(int i=0;i<texts.length;i++)
{
this.getContentPane().add(new RollbyJPanel(texts[i]));
}
}
this.setVisible(true);
}
public WelcomeJFrame()
{
this(null);
}
private class RollbyJPanel extends JPanel implements ActionListener,Runnable
{
JTextField text_word,text_sleep;
JButton button_start,button_interrupt;
JTextField text_state;
Thread thread_rollby;
int sleeptime;
RollbyJPanel(String text)
{
this.setLayout(new GridLayout(2,1));
char space[] = new char[100];
java.util.Arrays.fill(space,' ');
text_word = new JTextField(text+new String(space));
this.add(text_word);
JPanel panel_sub = new JPanel(new FlowLayout(FlowLayout.LEFT));
this.add(panel_sub);
panel_sub.add(new JLabel("sleep"));
this.sleeptime = (int)(Math.random()*100);
text_sleep = new JTextField(""+sleeptime,5);
panel_sub.add(text_sleep);
text_sleep.addActionListener(this);
button_start = new JButton("启动");
panel_sub.add(button_start);
button_start.addActionListener(this);
button_interrupt = new JButton("中断");
panel_sub.add(button_interrupt);
button_interrupt.addActionListener(this);
thread_rollby = new Thread(this);
button_interrupt.setEnabled(false);
panel_sub.add(new JLabel("state"));
text_state = new JTextField(""+thread_rollby.getState(),10);
text_state.setEditable(false);
panel_sub.add(text_state);
}
public void run()
{
while(true)
try
{
String str = text_word.getText();
str = str.substring(1)+str.substring(0,1);
text_word.setText(str);
thread_rollby.sleep(sleeptime);
}
catch(InterruptedException e)
{
break;
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button_start)
{
thread_rollby = new Thread(this);
thread_rollby.start();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(false);
button_interrupt.setEnabled(true);
}
if(e.getSource()==button_interrupt)
{
thread_rollby.interrupt();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(true);
button_interrupt.setEnabled(false);
}
if(e.getSource()==text_sleep)
{
try
{
sleeptime = Integer.parseInt(text_sleep.getText());
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(this, "\""+text_sleep.getText()+"\" 不能转换成整数,请重新输入!!");
}
}
}
}
public static void main(String[] args) {
String []texts = {"Welcome","Hello","Rollby","wo ca "};
new WelcomeJFrame(texts); }}
好像这里有个自动设置等待时间的语句没执行,请问代码哪里需要修改
{
try
{
sleeptime = Integer.parseInt(text_sleep.getText());
}
catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(this, "\""+text_sleep.getText()+"\" 不能转换成整数,请重新输入!!");
}
感觉这句好像没执行一样
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class WelcomeJFrame extends JFrame {
public WelcomeJFrame(String texts[])
{
super("滚动字");
this.setBounds(300, 240, 400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
if(texts==null || texts.length==0)
this.getContentPane().add(new RollbyJPanel("Welcome!"));
else
{
this.getContentPane().setLayout(new GridLayout(texts.length,1));
for(int i=0;i<texts.length;i++)
{
this.getContentPane().add(new RollbyJPanel(texts[i]));
}
}
this.setVisible(true);
}
public WelcomeJFrame()
{
this(null);
}
private class RollbyJPanel extends JPanel implements ActionListener,Runnable
{
JTextField text_word,text_sleep;
JButton button_start,button_interrupt;
JTextField text_state;
Thread thread_rollby;
int sleeptime; RollbyJPanel(String text)
{
this.setLayout(new GridLayout(2,1));
char space[] = new char[100];
java.util.Arrays.fill(space,' ');
text_word = new JTextField(text+new String(space));
this.add(text_word); JPanel panel_sub = new JPanel(new FlowLayout(FlowLayout.LEFT));
this.add(panel_sub);
panel_sub.add(new JLabel("sleep"));
this.sleeptime = (int)(Math.random()*100);
text_sleep = new JTextField(""+sleeptime,5);
panel_sub.add(text_sleep);
text_sleep.addActionListener(this); button_start = new JButton("启动");
panel_sub.add(button_start);
button_start.addActionListener(this);
button_interrupt = new JButton("中断");
panel_sub.add(button_interrupt);
button_interrupt.addActionListener(this); thread_rollby = new Thread(this);
button_interrupt.setEnabled(false);
panel_sub.add(new JLabel("state"));
text_state = new JTextField(""+thread_rollby.getState(),10);
text_state.setEditable(false);
panel_sub.add(text_state);
}
public void run()
{
while(true)
try
{
String str = text_word.getText();
str = str.substring(1)+str.substring(0,1);
text_word.setText(str);
thread_rollby.sleep(sleeptime);
}
catch(InterruptedException e)
{
break;
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==button_start){
//added by ioe_gaoyong
try{
this.sleeptime = Integer.parseInt(text_sleep.getText());
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(this, "\""+text_sleep.getText()+"\" 不能转换成整数,请重新输入!!");
} //added ended
thread_rollby = new Thread(this);
thread_rollby.start();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(false);
button_interrupt.setEnabled(true);
}
if(e.getSource()==button_interrupt){
thread_rollby.interrupt();
text_state.setText(""+thread_rollby.getState());
button_start.setEnabled(true);
button_interrupt.setEnabled(false);
}
// if(e.getSource()==text_sleep)
// {
//
// }
}
}
public static void main(String[] args) {
String []texts = {"Welcome","Hello","Rollby","wo ca "};
new WelcomeJFrame(texts); }}