WelcomeJFrame

来源:互联网 发布:orc识别软件 编辑:程序博客网 时间:2024/06/06 05:21

import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class WelcomeJFrame extends JFrame {Dimension dms;public WelcomeJFrame(String[] texts) {dms = getToolkit().getScreenSize();setBounds(dms.width/4, dms.height/4, dms.width/2, dms.height/2);setLayout(new GridLayout(3, 1));for (int i = 0; i < texts.length; i++) {getContentPane().add(new MyJPanel(texts[i]));}setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}public static void main(String[] args) {String[] texts = {"Welcome","Hello","Rollby"};new WelcomeJFrame(texts);}private class MyJPanel extends JPanel implements Runnable, ActionListener{//一个面板分成两份JTextField text_word,text_sleep,jtfd;JPanel pnl;JButton btn1,btn2;Thread t;int sleeptime;public MyJPanel(String text) {setLayout(new GridLayout(2, 1));if(text!=null&&text.length()!=0){{//确定版面char[] space = new char[110-text.length()];text_word = new JTextField(text + new String(space) );text_word.setEditable(false);pnl = new JPanel(new FlowLayout(FlowLayout.LEFT));add(text_word);add(pnl);}{//在下面显示状态JLabel lb = new JLabel("sleep:");text_sleep = new JTextField(5);sleeptime = (int) (Math.random()*100);text_sleep.setText(""+sleeptime);text_sleep.addActionListener(this);//为text_sleep注册监听btn1 = new JButton("启动");btn2 = new JButton("中断");pnl.add(lb);pnl.add(text_sleep);pnl.add(btn1);pnl.add(btn2);btn1.addActionListener(this);btn2.addActionListener(this);btn1.setEnabled(false);btn2.setEnabled(true);JLabel lb1 = new JLabel("state:");pnl.add(lb1);jtfd = new JTextField(10);jtfd.setEditable(false);pnl.add(jtfd);t = new Thread(this);t.start();jtfd.setText(""+t.getState());}}}@Overridepublic void run() {while (true) {try {String str = text_word.getText();str = str.substring(1) + str.substring(0, 1);text_word.setText(str);Thread.sleep(sleeptime);} catch (InterruptedException e) {//sleeptime = 100;//text_sleep.setText(""+sleeptime);//JOptionPane.showMessageDialog(this, "恭喜你挂了!!");break;// TODO Auto-generated catch block//e.printStackTrace();}}}private void MyUpdateParse(){try {sleeptime = Integer.parseInt(text_sleep.getText());text_sleep.setText(""+sleeptime);} catch (NumberFormatException e1) {JOptionPane.showConfirmDialog(this, text_sleep+"\"傻逼,重输!!");}}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==text_sleep){MyUpdateParse();}if(e.getSource()==btn1){MyUpdateParse();t = new Thread(this);t.start();btn1.setEnabled(false);btn2.setEnabled(true);jtfd.setText(""+t.getState());}if(e.getSource()==btn2){t.interrupt();btn2.setEnabled(false);btn1.setEnabled(true);jtfd.setText(""+t.getState());}}}//---------子类private class MyJPanel extends JPanel implements Runnable, CaretListener}





0 0