⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientgui.java

📁 < 嵌入式系统编程>>源代码解析光盘,包括这本书各章节的示例代码(无密码)
💻 JAVA
字号:
package ACRemote;

import ACRemote.*;
import java.io.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class ClientGUI extends JFrame implements ActionListener,ItemListener{
  JLabel label1,label2,label3,label4;
  JPanel panelh =new JPanel(new FlowLayout(FlowLayout.CENTER));
  JPanel panelm =new JPanel(new FlowLayout(FlowLayout.LEFT));
  JPanel panel1 =new JPanel();
  JPanel panel2 =new JPanel();
  JPanel panel3 =new JPanel();
  JCheckBox ch1;
  JComboBox cb1,cb2,cb3;
  String strserver,str;
  String ON="On";
  String OFF="Off";
  int status,temp,hh,mm;
  StringTokenizer stoken;
  Color c=new Color(100,100,255);
  Font f1=new Font("Arial",Font.BOLD,12);
  public ClientGUI(){
	   getContentPane().setLayout(null);
	   setResizable(false);
       setBackground(Color.lightGray);
	   addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent we){
                System.exit(0);}
        });

		panelh.setBounds(15,5,150,30);
		panelm.setBounds(25,35,185,150);
		panel1.setBounds(30,65,150,30);
		panel2.setBounds(30,95,150,30);
		panel3.setBounds(30,125,185,30);
		label1=new JLabel("A/C Remote");
		label1.setFont(f1);
		label1.setForeground(c);
		panelh.add(label1);
		panelm.add(panel1);
		panelm.add(panel2);
		panelm.add(panel3);

		panel1.add(label1=new JLabel("On / Off    :"));
		panel1.add(ch1= new JCheckBox());
		panel2.add(label2=new JLabel("Temperature :"));
		panel2.add(cb1= new JComboBox());
		panel3.add(label2=new JLabel("Time(hh:mm):"));
		panel3.add(cb2= new JComboBox());
		panel3.add(cb3= new JComboBox());

		for(int i=10;i<=30;i++){
			String s = new String(""+i);
			cb1.addItem(s);
		}

		for(int j=0;j<=12;j++){
			String s=new String(""+j);
			cb2.addItem(s);
		}

		for(int j=0;j<=60;j+=5){
			String s=new String(""+j);
			cb3.addItem(s);
		}

		strserver = ((ACRemoteServiceInterface)ACRemoteClient.obj).getStatus();
		Tokenize();

		if(status == 1) {
			ch1.setSelected(true);
		} else {
			ch1.setSelected(false);
			cb1.setEnabled(false);
			cb2.setEnabled(false);
			cb3.setEnabled(false);
		}

		cb1.setSelectedItem(""+temp);
		cb2.setSelectedItem(""+hh);
		cb3.setSelectedItem(""+mm);

		ch1.addItemListener(this);
		cb1.addActionListener(this);
		cb2.addActionListener(this);
		cb3.addActionListener(this);
		getContentPane().add(panelh);
		getContentPane().add(panelm);
  }

 public void actionPerformed(ActionEvent ae){
	 Object o = ae.getSource();
	 if(o.equals(cb1)){
		 temp=Integer.parseInt((String)cb1.getSelectedItem());
		 ((ACRemoteServiceInterface)ACRemoteClient.obj).setTemp(temp);
	 }
	 if(o.equals(cb2)){
		 hh=Integer.parseInt((String)cb2.getSelectedItem());
		 ((ACRemoteServiceInterface)ACRemoteClient.obj).setTimer(hh,mm);
	 }
	 if(o.equals(cb3)){
		 mm=Integer.parseInt((String)cb3.getSelectedItem());
		 ((ACRemoteServiceInterface)ACRemoteClient.obj).setTimer(hh,mm);
	 }
	 strserver = ((ACRemoteServiceInterface)ACRemoteClient.obj).getStatus();
	 Tokenize();
 }

 public void itemStateChanged(ItemEvent ie){
	 status = (int)ie.getStateChange();
 	 ((ACRemoteServiceInterface)ACRemoteClient.obj).setOnOff(status);
 	 strserver = ((ACRemoteServiceInterface)ACRemoteClient.obj).getStatus();
 	 Tokenize();
 	 if(status == 1) {
	 	cb1.setEnabled(true);
	 	cb2.setEnabled(true);
	 	cb3.setEnabled(true);
	} else {
	 	cb1.setEnabled(false);
	 	cb2.setEnabled(false);
	 	cb3.setEnabled(false);
	}
 }
 public void Tokenize(){
	 stoken = new StringTokenizer(strserver,"#");

	 status=Integer.parseInt(stoken.nextToken());
	 temp=Integer.parseInt(stoken.nextToken());
	 hh=Integer.parseInt(stoken.nextToken());
	 mm=Integer.parseInt(stoken.nextToken());
	 System.out.println("Status : "+((status == 1) ? ON : OFF)+" temp : "+temp+" hh : "+hh+" mm : "+mm);
 }
 static ACRemoteClient acremote;
 public static void main(String args[])
 {
	try{
	     UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
      }catch (Exception e){
      }
    System.out.println("\n Please wait.....");
     try{
		 acremote = new ACRemoteClient();
		 new Thread(acremote).start();
	 }catch(Exception e) {
		 System.err.println("Unable to create client: "+e.getMessage());
	 }

	 try{
		  Thread.sleep(15*1000);
	  }catch(Exception e){
		  System.err.println("Interrpted Exception occured: "+e.getMessage());
	  }
	 ClientGUI sac=new ClientGUI();
	 sac.setSize(220,200);
	 sac.setVisible(true);
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -