Serializing a JButton

i tried serializing JButton and restoring it during the next run, but it doesn't seem to work.
are there issues with deserializing a JBUtton?

Just a warning: serialization of GUI components like
JButton is not meant
for long term storage, nor for exchange between
systems that may have
different versions of the JVM (since the
serialization format is not guaranteed
to be stable between versions).Use XMLEncoder and XMLDecoder to serialize and store it if you're worried about different formats between JVMs.

Similar Messages

  • Reference To Serial JButton

    How can I get an individual reference to a JButton that was created 26 times and assigned a different letter of the alphabet?
    public void createButton(Container panel, String letter) {
    JButton alphabetButton = new JButton(letter);
    alphabetButton.addActionListener(this);
    alphabetButton.addMouseListener(this);
    panel.add(alphabetButton);
    alphabetPanel = new JPanel();
    alphabetPanel.setLayout(new GridLayout(13, 2));
    for(int i = 0; i < LETTERS.length(); i++) {
    this.createButton(alphabetPanel, LETTERS.substring(i, i +1));
    LETTERS is a string containing the 26 letters of the alphabet.
    Thanks

    return them from the createButton, and put them in an array, list, collection?
    please use code tags.

  • Adding JButton in a JTable

    hi
    i know this has been discussed quite a number of times before, but i still couldn't figure it out..
    basically i just want to add a button to the 5th column of every row which has data in it.
    this is how i create my table (partially)
         private JTable clientTable;
         private DefaultTableModel clientTableModel;
    private JScrollPane scrollTable;
    clientTableModel = new DefaultTableModel(columnNames,100);
              clientTable = new JTable(clientTableModel);
              TableColumn tblColumn1 = clientTable.getColumn("Request ID");
              tblColumn1.setPreferredWidth(70);
              tblColumn1 = clientTable.getColumn("Given Name");
              tblColumn1.setPreferredWidth(300);
              tblColumn1 = clientTable.getColumn("Address");
              tblColumn1.setPreferredWidth(350);
              tblColumn1 = clientTable.getColumn("Card Serial");
              tblColumn1.setPreferredWidth(100);
              tblColumn1 = clientTable.getColumn("Print Count");
              tblColumn1.setPreferredWidth(70);
              tblColumn1 = clientTable.getColumn("Print?");
              tblColumn1.setPreferredWidth(40);
              clientTableModel.insertRow(0,data);
              //clientTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
              scrollTable = new JScrollPane(clientTable);and i call this function void listInfoInTable(){
              JButton cmdPrint[];
              Vector columnNames = new Vector();
              Object[] data={"","","","","",""};
              Statement stmt=null;
              ResultSet rs=null;
              PreparedStatement ps;
              String query=null;
              String retrieve=null;
              int i,j=0;
              TableColumnModel modelCol = clientTable.getColumnModel();
              try{
                   con = DriverManager.getConnection(url);
                   JOptionPane.showMessageDialog(null,"Please wait while the program retrieves data.");
                   query="select seqNo, givenName, address1, address2, address3, address4, cardSerNr, PIN1, PrintFlag from PendPINMail where seqNo<250;";
                 ps = con.prepareStatement(query);
                 rs=ps.executeQuery();
                 while (rs.next()){
                      data[0]= rs.getString("seqNo");
                      data[1]= rs.getString("givenName");
                      data[2]= rs.getString("address1");
                      data[3]= rs.getString("cardSerNr");
                      data[4]= rs.getString("PrintFlag");
    //                  modelCol.getColumn(5).setCellRenderer();
                      clientTableModel.insertRow(j,data);
                      j++;
              }catch (SQLException ex){
                   JOptionPane.showMessageDialog(null,"Database error: " + ex.getMessage());
         } to display data from database inside the table.
    How do I add JButton to the 5th column of each row? This documentation here http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#width says that i need to implement TableCellEditor to put JButton in the table. How do i really do it? I want the button to call another function which prints the data from the row (but this is another story).
    Any help is greatly appreciated. Thanks

    you would need CellRenderer i think that it is in
    javax.swing.table.*;
    see if you can get started with that.
    Davidthanks, i'll try and have a look at it
    Yes, that's definitely what you need to start with,
    but you also need a CellEditor to return the
    button as well, otherwise the button will not be
    clickable (the renderer just paints the cell for
    display, it doesn't allow you to interact with it).
    You could maintain a list of components for rendering
    each cell of the table so that your
    CellRenderer and CellEditor always
    return the same object (i.e. a JButton for any
    given cell).
    CB.thanks for the info.. could you point me to some examples? is sounds quite complicated for me....
    thanks again

  • Serializing text with component

    (Serializing text with component)
    The text is just ascii text, but it could be a considerable size (like 64k). The purpose would be to serialize, and then de-serialze all of this custom information I need for that component (and some other stuff). An example would be to save a list of names with my 'Name' component.
    I don't see any evidence that it is possible...
    Thanks,
    JR

    Well, imagine if we had to do serialization in this
    manner (i.e. manually). Not a pretty picture in my
    opnion...sure, that's why the API exists... don't take it the other way round and apply serialization to every single piece of data
    why do you think that serialization is easier btw ? here's the non-serialized version :
    Writer writer = new FileWriter(filename);
    writer.write(value); // I assume your text is available in a String named 'value'
    writer.close();and here it is with serialization :
    JButton container = new JButton(value);
    FileOutputStream fos = new FileOutputStream(filename);
    ObjectOutputStream outputStream = new ObjectOutputStream(fos);
    outputStream.writeObject(container);
    outputStream.close();Serialization helps you serialize complex objects (like graphical components) easily. It's a relatively heavy mechanism (compared to regular file writing) and shouldn't be used as a standard way of writing text to a file.

  • Serializing a JPanel

    Hi,
    I am trying to serialize a JPanel and then open it again. My JPanel (called rightPanel) contains a JButton, which has some text set to "xyz". Would I have to serialize the JPanel and JButton separately? Or if I serialize the JPanel, would that take care of the JButton too?
    At the moment my code is like this:
    JFileChooser myFileChooser = new JFileChooser ();
    myFileChooser.showSaveDialog(MyFrame.this);
    File myFile = myFileChooser.getSelectedFile();
    try{
    FileOutputStream out = new FileOutputStream(myFile);
    ObjectOutputStream s = new ObjectOutputStream(out);
    s.writeObject(rightPanel);
    s.flush
    } catch (IOException e) {};
    When I execute my Save, a file is saved onto my system. I do not know if the saved file contains my rightPanel.
    When I try to open up the file (by doing a readObject), nothing happens. What am I doing wrong?
    Any help would be much appreciated.
    Thanks.
    AU

    You make some very good points there. I do totally agree with you that serializing Swing components is discouraged.
    But you see the reason I am trying to serialize my JPanel is because of this. Say the components on my JPanel will be determined on-the-fly by clicking on buttons on my JToolbar. So that means on one occasion a user might add to my JPanel a JButton, followed by 20 JLabels, all of different sizes. On the next occasion my JPanel might contain a 100 JButtons, a few jpeg images, and a textbox. Are you suggesting I should use something like a Vector to store everything that is added to my JPanel, and that everytime I add an item to it, I also add it to the Vector...and then when I want to Save my JPanel, I traverse through my Vector, serializing the attributes of every object in my Vector.
    That makes more code for me!!!
    AU

  • How to detect serial port

    CommPortIdentifier portId;
              Enumeration en = CommPortIdentifier.getPortIdentifiers();
              Vector v=new Vector();
              while (en.hasMoreElements())
                   portId = (CommPortIdentifier) en.nextElement();
                   if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
                             v.addElement(portId.getName());
              }

    refer this URL
    http://www.java2s.com/Code/Java/Development-Class/ReadfromaSerialportnotifyingwhendataarrives.htm
         * Project                     :
         * Class                     : GUIFrame.java
         * Purpose                    :
         * Date_Created               :
         * @ Version 1.0
    import javax.swing.JFrame;
    // import javax.swing.JPanel;
    import javax.swing.JMenuItem;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import java.awt.event.*;
    import javax.comm.*;
    import java.awt.*;
    import javax.swing.*;
    // import javax.swing.border.TitledBorder;     
    public class GUIFrame extends JFrame implements ActionListener
         JButton connectPort;
         JComboBox combo;     
         //JButton baudRate;
         //JComboBox baudRateCombo;     
         public JTextArea textArea;     
         JButton sendData;
         public SerialConnection serialConnection;
         public GUIFrame()
              setLayout(null);
              setTitle("First Frame");
              serialConnection = new SerialConnection();                    
              setJMenuBar(createMenuBar());
              combo = new JComboBox();
              combo.setBounds(50, 50, 80, 25);
              listPort();
              combo.addActionListener(this);
              connectPort = new JButton("Connect");
              connectPort.setBounds(150, 50, 100, 25);
              connectPort.addActionListener(this);
              sendData = new JButton("Send Data");
              sendData.setBounds(150, 150, 100, 25);
              sendData.addActionListener(this);
              textArea = new JTextArea();
              textArea.setBounds(300, 300, 400, 300);
              textArea.setFont(new Font("sansserif",0,18));
              add(connectPort);
              add(combo);
              add(sendData);
              add(textArea);;
              setSize(400, 300);
              setVisible(true);
              addWindowListener(new MainWindowAdapter());
         public static void main(String arg[])
              System.out.println("Hi");
              new GUIFrame();
         public JMenuBar createMenuBar()
              JMenuBar menuBar = new JMenuBar();
              JMenu fileMenu = new JMenu("File");
              JMenuItem connectMenuItem = new JMenuItem("Connect");
              connectMenuItem.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent ae){
                        try{
                             if(serialConnection.portName == null){
                                  serialConnection.portName = combo.getSelectedItem().toString();
                             serialConnection.openConnection();
                        catch(Exception ex)
              JMenuItem disconnectMenuItem = new JMenuItem("Disconnect");
              disconnectMenuItem.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent ae){
                        try{
                             serialConnection.closeConnection();
                        catch(Exception ex)
              fileMenu.add(connectMenuItem);
              fileMenu.add(disconnectMenuItem);
              menuBar.add(fileMenu);
              return menuBar;
         public void listPort()
              CommPortIdentifier portId;          
              java.util.Enumeration enumeration = CommPortIdentifier.getPortIdentifiers();
              while(enumeration.hasMoreElements())
                   portId = (CommPortIdentifier)enumeration.nextElement();
                   if(portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
                        if(!portId.isCurrentlyOwned())
                             combo.addItem(portId.getName());
         public void actionPerformed(ActionEvent ae)
              if(ae.getSource() == connectPort)
                   System.out.println("Connect is clicked");     
                   try
                        if(serialConnection.portName == null)
                             serialConnection.portName = combo.getSelectedItem().toString();
                        serialConnection.openConnection();
                   catch(Exception ex)
              if(ae.getSource() == combo)
                   System.out.print("Port Name = " + combo.getSelectedItem().toString());
                   serialConnection.portName = combo.getSelectedItem().toString();
              if(ae.getSource() == sendData)
                   byte b[] = new byte[5];
                   b[0] = (byte)0xaa;
                   b[1] = (byte)0xbb;
                   b[2] = (byte)0xcc;
                   b[3] = (byte)0xdd;
                   b[4] = (byte)0xee;     
                   try
                        serialConnection.getOutputStream().write(b);
                        display(b);
                   catch(Exception ex)
         public class MainWindowAdapter extends WindowAdapter
              public void windowClosing(WindowEvent win)
                   dispose();
                   System.exit(0);
         public void display(byte[] b)
              for(int i=0; i< b.length; i++)
                   textArea.append(Integer.toHexString (b[i] & 0xff) + " ");
              textArea.append("\n");
         * Project                     :
         * Class                     : SerialConnection.java
         * Purpose                    :
         * Date_Created               :
         * @ Version 1.0
    import javax.comm.*;
    import java.io.*;
    public class SerialConnection
         private OutputStream os;
         private InputStream is;
         private CommPortIdentifier portId;
         public SerialPort sPort;
         private boolean open;
         public String portName;
         SerialConnection serialConnection;
         public SerialConnection()
              serialConnection=this;
              PortHandler portHandler = new PortHandler(serialConnection);
              portHandler.init(serialConnection);
         public void setOutputStream(OutputStream os)
              this.os=os;
         public OutputStream getOutputStream()
              return os;
         public void setInputStream(InputStream is)
              this.is=is;
         public InputStream getInputStream()
              return is;
         * A Method to open the SerialConnection
    public void openConnection() throws Exception
              try
                   portId = CommPortIdentifier.getPortIdentifier(portName);
              catch (javax.comm.NoSuchPortException e)
                   System.out.println("noPort : "+e);
              try
                   sPort = (SerialPort)portId.open("port", 3000);               
                   open = true;
              catch (javax.comm.PortInUseException e)
                   throw new Exception();
              try
                   setOutputStream(sPort.getOutputStream());
                   setInputStream(sPort.getInputStream());               
                   System.out.println("IO stream is opened");
              catch (java.io.IOException e)
                   sPort.close();                    
         *A Method to Close the port and clean up associated elements.
         public void closeConnection()
              // If port is already closed just return.
              if (!open)
                   return;
              if (sPort != null)
                   try
                        this.os.close();
                        this.is.close();
                        System.out.println("IO stream is opened - CloseConnection");
                   catch (java.io.IOException e)
                        System.err.println(e);
                   sPort.close();
                   System.out.println("Port is closed");
              System.out.println("Flag Open - 1 : " + open );
              open = false;
              System.out.println("Flag Open - 2 : " + open);
         * Send a one second break signal.
         public void sendBreak()
              sPort.sendBreak(1000);
         * Reports the open status of the port.
         * @return true if port is open, false if port is closed.
         public boolean isOpen()
              return open;
         * A Method to add the event listener to the SerialPort
         public void addEventListener(java.util.EventListener listener)throws Exception
              System.out.println("Is not in opened state");
              if(isOpen())
                   System.out.println("Is in opened state");
                   try
                        sPort.addEventListener((javax.comm.SerialPortEventListener)listener);
                   catch (java.util.TooManyListenersException e)
                        sPort.close();               
                   // Set notifyOnDataAvailable to true to allow event driven input.
                   sPort.notifyOnDataAvailable(true);
                   // Set notifyOnBreakInterrup to allow event driven break handling.
                   sPort.notifyOnBreakInterrupt(true);
                   // Set receive timeout to allow breaking out of polling loop during
                   // input handling.
                   try
                   sPort.enableReceiveTimeout(50);
                   //sPort.enableReceiveTimeout(-1);
                   catch (javax.comm.UnsupportedCommOperationException e)
                        e.printStackTrace();
                   // Add ownership listener to allow ownership event handling.
                   portId.addPortOwnershipListener((javax.comm.CommPortOwnershipListener)listener);
         import javax.comm.*;
         public class PortHandler implements SerialPortEventListener,CommPortOwnershipListener{
              public SerialConnection serialConnection;
              public PortHandler(SerialConnection serialConnection)
                   this.serialConnection=serialConnection;
                   try{
                        serialConnection.addEventListener((SerialPortEventListener)this);
                        System.out.println("New Port Handler is called");
                   catch(Exception e)
                        System.out.println("Exception PortHandler(); " +e);
                        e.printStackTrace();
                   // Add this object as an event listener for the serial port.
                   System.out.println("PortHandler is initialised...");
              public SerialConnection getConnection(){
                   return serialConnection;
              public void setSerialConnection(SerialConnection serialConnection){
                   this.serialConnection = serialConnection;
              public void init(SerialConnection serialConnection){
                   setSerialConnection(serialConnection);
              public void serialEvent(SerialPortEvent e){
                   System.out.println("Event Initialised");
                   //Determine type of event.
                   switch (e.getEventType())
                        case SerialPortEvent.DATA_AVAILABLE:
                             try{
                                  readData();                              
                             catch(java.io.IOException e1)
                                  System.out.println("IO Excep "+e1.getMessage());
                                  e1.printStackTrace();
                             catch(Exception e1)
                                  System.out.println("Exception from Serial Event "+e1.getMessage());
                                  e1.printStackTrace();
                        break;
                        case SerialPortEvent.BI:
                        break;
              public void readData() throws java.io.IOException
                   byte b[]=new byte[8500];
                   int i=0,selectOption=0;
                   int newData=0;
                   int doubleLength=0;
                   int length=0;
                   // String mid="",strLen="";
                   while (newData != -1)
                        try     
                             System.out.println("getInputStream().available() : " + serialConnection.getInputStream().available());
                             newData = serialConnection.getInputStream().read();
                             System.out.println("newData\t"+newData);
                             if (newData == -1)
                                  System.out.println("\n End of the File\n");
                                  break;
                             if(i==0){
                                  b=(byte)newData;
                                  System.out.print("\n MSg ID \t= " + Integer.toString(newData&0xff,16)+"\n----------------------------");
                                  if(b[0] == (byte)0x00)
                                       i=-1;
                                       i++;
                                       continue;
                                  i++;
                                  //System.out.println("Method is called - selectOption : " + selectOption);
                                  continue;
                             if(i==1)
                                  b[i]=(byte)newData;
                                  System.out.print("\n Length =\t"+Integer.toString(newData&0xff,16)+"\n----------------------------");
                                  length=newData;
                                  if(length == 0)
                                       i=0;
                                       continue;
                                  i++;
                                  continue;
                             b[i]=(byte)newData;
                             if((b[0] == (byte)0x07) && (i == 2) || (b[0] == (byte)0xaf) && (i == 2) || (b[0] == (byte)0xec) && (i == 2)
                                  || (b[0] == (byte)0x5c) && (i == 2) || (b[0] == (byte)0xbe) && (i == 2) )
                                  String string = String.valueOf((byte)b[0]);
                                  String strLen = Integer.toString(b[2]&0xff,16) + Integer.toString(b[1]&0xff,16);
                                  System.out.println("\n\nLength String = " + strLen + "\n\n");
                                  java.math.BigInteger bi=new java.math.BigInteger(strLen,16);
                                  strLen = bi.toString();
                                  doubleLength = Integer.parseInt(strLen);
                                  System.out.println("\nLength int = " + doubleLength + "\n");
                                  //System.out.println("Method is called");
                             i++;
                             // Added by Siva on Jan 06
                             switch(selectOption)
                                  case 0:
                                       if(i>length+1)
                                            try
                                                 b[i]=(byte)newData;     
                                                 System.out.print("\nThe Last Byte =\t"+Integer.toString(newData&0xff,16)+"\n----------------------------");
                                                 System.out.print("\n"+i+" i Value =\t"+Integer.toString(newData&0xff,16));
                                                 System.out.println("\n----------------------- FINISHED------------------------------");
                                                 // service(b);     
                                                 System.out.println("\n----------------------- After Service------------------------------");
                                                 i=-1;
                                                 i++;               
                                                 continue;
                                            }catch (Exception e)
                                                 System.out.println("Exception in calling service 0:"+e.getMessage());
                                                 e.printStackTrace();
                                                 b[i]=(byte)newData;
                                       System.out.print("\nMSg ID \t= "+Integer.toString(newData&0xff,16)+"\n----------------------------");
                                       break;
                   }catch (java.io.IOException ex)     {
                        System.err.println("Abstarct Port handler Exception\t"+ex);
                   catch(Exception e1)
                        System.out.println("Exception from Read Data "+e1.getMessage());
                        e1.printStackTrace();
                   System.out.println("-----------------------------");
              public void ownershipChange(int type){
                   if (type == CommPortOwnershipListener.PORT_OWNERSHIP_REQUESTED){
              public void destroy()     
                   try{
                        serialConnection.closeConnection();     
                   }catch(Exception e){
                        System.out.println("Exception 2:"+e);     
                        e.printStackTrace();
              public void finalize(){
                   destroy();

  • Serializing XMLDocument

    Has anyone run into problems serializing oracle.xml.parser.v2.XMLDocument and subsequently running XSLProcessor on it?
    My situation involves creating an XMLDocument object, sending it over an object stream from a server to a client, and then running it through the processXSL method of an XSLProcessor object.
    As a test, if I use processXSL on the server side before I send the XMLDocument to the client, it works fine. However, if I run it on the client side as soon as I receive the XMLDocument object, the process will produce what appears to be a malformed document.
    It's a bit extensive to provide and example, but I will try to get something together for the Oracle team.
    Thanks,
    Josh Peck
    [email protected]
    null

    Well, imagine if we had to do serialization in this
    manner (i.e. manually). Not a pretty picture in my
    opnion...sure, that's why the API exists... don't take it the other way round and apply serialization to every single piece of data
    why do you think that serialization is easier btw ? here's the non-serialized version :
    Writer writer = new FileWriter(filename);
    writer.write(value); // I assume your text is available in a String named 'value'
    writer.close();and here it is with serialization :
    JButton container = new JButton(value);
    FileOutputStream fos = new FileOutputStream(filename);
    ObjectOutputStream outputStream = new ObjectOutputStream(fos);
    outputStream.writeObject(container);
    outputStream.close();Serialization helps you serialize complex objects (like graphical components) easily. It's a relatively heavy mechanism (compared to regular file writing) and shouldn't be used as a standard way of writing text to a file.

  • Serial port not reading after few seconds PLZ HELP...

    Hi,
    I have developed a GUI using Swing in NetBeans IDE 4.0 on Windows 2000 professional for one of our products.
    It communicates with the associated Hardware through serial port.
    The GUI sends commands to the H/W to perform some functionality. After receiving response from the H/W, GUI displays the necessary messages.
    Since the H/W does require some time to perform the indicated operation, it sends the response after 10-11 seconds but my GUI is not reading the response.
    Both the command and response are single byte (8 bits) wide.
    The GUI can read the response if sent within 3-4 sec.s but not after that.
    I have disabled the Receive TimeOut on the serial Port.
    Following is the code I use to Open and use the SerialPort.
    public void OpenPort(){
             portList = javax.comm.CommPortIdentifier.getPortIdentifiers();
            while (portList.hasMoreElements()) {
                portId = (javax.comm.CommPortIdentifier) portList.nextElement();
                if (portId.getPortType() == javax.comm.CommPortIdentifier.PORT_SERIAL) {
                    if (portId.getName().equals(Welcome.CommPort)) {
                        try {
                            serialPort =  (javax.comm.SerialPort)portId.open("FCAT-01 ATE", 20000);
                        } catch (javax.comm.PortInUseException e) {}
                        try{
                            serialPort.addEventListener(this);
                        }catch (java.util.TooManyListenersException e){}
                            serialPort.notifyOnDataAvailable(true);
                   try {
                            outputStream = serialPort.getOutputStream();
                        } catch (java.io.IOException e) {}
                            try {
                                inputStream=serialPort.getInputStream();
                            }catch (java.io.IOException e){}
                                serialPort.notifyOnDataAvailable(true);
                   try {
                            serialPort.setSerialPortParams(Welcome.Speed, javax.comm.SerialPort.DATABITS_8, javax.comm.SerialPort.STOPBITS_1,
                                javax.comm.SerialPort.PARITY_NONE);
                        } catch (javax.comm.UnsupportedCommOperationException e) {}
                             serialPort.disableReceiveTimeout();
           Pls help me how to solve this problem as its really very urgently necessary to release the product.
    Thank u for ur time and consideration,
    Umesh Balikai

    Sir,
    Here is the complete code.
    The H/W takes about 10 seconds to reply. The GUI is responding to first response from ATE H/W and not to the subsequent ones. The ATE responds after the GUI sends command when the user clicks OKButton.
    package my.ate.pkg;
    import javax.swing.*;
    import java.util.*;
    public class PingTest extends javax.swing.JFrame implements javax.comm.SerialPortEventListener{
        /** Creates new form PingTest */
        public PingTest() {
            initComponents();
        private void initComponents() {                         
            // create and initialise  various buttons, labels, etc.
        private void OKButtonMouseClicked(java.awt.event.MouseEvent evt) {                                     
            // TODO add your handling code here:
            OKClick();
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new PingTest().setVisible(true);
        // Variables declaration                     
        private javax.swing.JLabel AN;
        private javax.swing.JButton OKButton;
        public static java.io.OutputStream outputStream;
        public static java.io.InputStream inputStream;
        public static java.util.Enumeration portList;
        public static javax.comm.CommPortIdentifier portId;
        public static javax.comm.CommPort commPort;
        public static javax.comm.SerialPort serialPort;
        public static byte[] readBuffer=new byte[20];
        public static int numBytes=0;
        private java.awt.Color Fail=java.awt.Color.red;
        private java.awt.Color Pass=java.awt.Color.blue;
        public static int requestCommand;
        public static int receiveCount=0;
        public static boolean portOpen=false;
      // End of variables declaration 
        public void serialEvent(javax.comm.SerialPortEvent event){
                switch(event.getEventType()){
                    case javax.comm.SerialPortEvent.BI:
                    case javax.comm.SerialPortEvent.OE:
                    case javax.comm.SerialPortEvent.FE:
                    case javax.comm.SerialPortEvent.PE:
                    case javax.comm.SerialPortEvent.CD:
                    case javax.comm.SerialPortEvent.CTS:
                    case javax.comm.SerialPortEvent.DSR:
                    case javax.comm.SerialPortEvent.RI:
                    case javax.comm.SerialPortEvent.OUTPUT_BUFFER_EMPTY:
                         break;
                    case javax.comm.SerialPortEvent.DATA_AVAILABLE:   
                        try{
                                 numBytes=inputStream.read(); 
                                     if(numBytes==0x54)  {
                                        // display some message
                     else if(numBytes==0x41)  {
                                        // display some message
                                    else if(numBytes==0x46)  {
                                         // display some message
                      else if(numBytes==0x42)  {
                                             // display some message
                        }catch (java.io.IOException e){}
                        break;
        public void OKClick(){
            if(portOpen){
                        serialPort.close();
                        portOpen=false;
            OpenPort();
            try{
               Thread.sleep(500);
            }catch(java.lang.InterruptedException e){//display error}
            try{
                outputStream.write(0x39);
            }catch(java.io.IOException e){//display error}
            //display some Progress Message
        public void OpenPort(){
             portList = javax.comm.CommPortIdentifier.getPortIdentifiers();
            while (portList.hasMoreElements()) {
                portId = (javax.comm.CommPortIdentifier) portList.nextElement();
                if (portId.getPortType() == avax.comm.CommPortIdentifier.PORT_SERIAL) {
                    if (portId.getName().equals(Welcome.CommPort)) {
                        try {
    serialPort =  (javax.comm.SerialPort)portId.open("FCAT-01ATE",2000);
                                           } catch (javax.comm.PortInUseException e) { //display error}
                        portOpen=true;
                        serialPort.notifyOnDataAvailable(true);
                        try{
                            serialPort.addEventListener(this);
                        }catch (java.util.TooManyListenersException e){ //display erro}
                        serialPort.disableReceiveTimeout();
         try {
                            outputStream = serialPort.getOutputStream();
                        } catch (java.io.IOException e) { //display erro}
                            try {
                                inputStream=serialPort.getInputStream();
                            }catch (java.io.IOException e){ //display erro}
                                serialPort.notifyOnDataAvailable(true);
         try {
                            serialPort.setSerialPortParams(Welcome.Speed, javax.comm.SerialPort.DATABITS_8, javax.comm.SerialPort.STOPBITS_1,
                                javax.comm.SerialPort.PARITY_NONE);
                        } catch (javax.comm.UnsupportedCommOperationException e) { //display erro}
    }Probably the command after clicking OKButton is not reaching the H/W. because the ATE will surely respond if it receives the command and that is tested several times.
    Thanks.

  • Serializing a Panel...

    Hi there
    I want to save the content of the programmatically buttons in the Panel. However, sometimes I got the following exception and I really can't work out why. Please help I really can't work it out.
    java.io.NotSerializableException: javax.swing.DefaultPopupFactory      at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1148)      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)      at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1827)      at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)      at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214)      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)      at java.awt.Window.writeObject(Window.java:1048)      at java.lang.reflect.Method.invoke(Native Method)      at java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1864)      at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1210)      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)      at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1827)      at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)      at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214)      at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)      at Assignment1$5.actionPerformed(Assignment1.java:142)      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)      at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)      at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)      at java.awt.Component.processMouseEvent(Component.java:3715)      at java.awt.Component.processEvent(Component.java:3544)      at java.awt.Container.processEvent(Container.java:1164)      at java.awt.Component.dispatchEventImpl(Component.java:2593)      at java.awt.Container.dispatchEventImpl(Container.java:1213)      at java.awt.Component.dispatchEvent(Component.java:2497)      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)      at java.awt.Container.dispatchEventImpl(Container.java:1200)      at java.awt.Window.dispatchEventImpl(Window.java:926)      at java.awt.Component.dispatchEvent(Component.java:2497)      at java.awt.EventQueue.dispatchEvent(EventQueue.java:339)      at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)      at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
    My source code.
    import java.awt.*;
    import javax.swing.*;
    import java.io.Serializable;
    public interface AbstractPanel extends Serializable{
         public void addButton(String s);
         public void updateButton(String s);
         public void deleteButton();
         public void setPanel(Container content, JPanel panel3);
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.event.*;
    import java.util.*;
    public class BorderLayoutPanel extends JPanel implements AbstractPanel {
         private Assignment1 parent;
         protected JComboBox comboBox = new JComboBox();
         private Vector buttons = new Vector();
         public BorderLayoutPanel(Assignment1 pt) {
              super();
              parent = pt;          
              setLayout(new BorderLayout());
              TitledBorder title1 = BorderFactory.createTitledBorder("Subject JPanel");
              setBorder(title1);                    
              comboBox.addItem(BorderLayout.NORTH);
              comboBox.addItem(BorderLayout.SOUTH);
              comboBox.addItem(BorderLayout.WEST);
              comboBox.addItem(BorderLayout.EAST);
              comboBox.addItem(BorderLayout.CENTER);          
         public void addButton(String s) {
              JButton newb = new JButton(s);
              buttons.add(newb);
              newb.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent ev) {
                        parent.clicked = (JButton) ev.getSource();
                        parent.text.setText(parent.clicked.getText());
                        parent.update.setEnabled(true);
                        parent.delete.setEnabled(true);
              add(newb, ((String) comboBox.getSelectedItem()) );
              validate();
              repaint();
         public void updateButton(String s) {
              remove(parent.clicked);
              parent.clicked.setText(s);
              add(parent.clicked, ((String) parent.comboBox.getSelectedItem()) );
              parent.update.setEnabled(false);
              parent.delete.setEnabled(false);
              validate();
              repaint();
         public void deleteButton() {
              remove(parent.clicked);
              parent.update.setEnabled(false);
              parent.delete.setEnabled(false);
              validate();
              repaint();
         public void setPanel(Container content, JPanel panel3) {
              panel3.setLayout(new BorderLayout());
              panel3.add(comboBox, BorderLayout.WEST);
              content.validate();
              content.repaint();     
    Thank you for any suggest and advice!
    Edmond

    Hi there,
    I have found that after I click on the JComboBox, I will get the exception. Does anyone know if there is any special about serializing the JComboBox? Or, is there a bug in it?
    Thank you!

  • Projeto - Reconhecimento de Voz e Comunicação Serial

    Olá, estou desenvolvendo um projeto no qual devo reconhecer comandos de voz e enviar posteriormente informações através de comunicação serial.
    A idéia do projeto é a seguinte :
    - Reconhecer comandos de voz como "POSIÇÃO 1, POSIÇÃO 2"
    - Para cada comando reconhecido, uma mensagem deve ser enviada via comunicação serial.
    No entanto, não venho conseguindo reconhecer comandos de voz através de alguns VI's fornecidos pela NI, então venho pedir ajuda para procurar um caminho para começar a construir tal projeto.
    Grato desde já.
    Gilberto Neto
    Estudante de Tecnologia em Mecatrônica Industrial
    Faculdade de Tecnologia Termomecanica

    Olá, achei bem interessante este projeto, porém tenho algumas perguntas:
    Existe alguma especificação quanto ao Hardware para capturar o sinal?
    Quando você diz: "Reconhecer comandos de voz como "POSIÇÃO 1, POSIÇÃO 2", você está se referindo que o conteúdo da mensagem falada é "POSIÇÃO 1,POSIÇÃO 2" ou que isso é uma mera identificação para uma mensagem diferente?
    Capturar o sinal emitido pela voz é relativamente fácil,porém a identificação e interpretação desse sinal que é algo mais complexo (Relativo a segunda pergunta que eu fiz). Com as VI's da paleta (Sound), você irá apenas coletar esse sinal, porém a análise heurística para interpretação fica a cabo do desenvolvedor. Felizmente, existem algumas Library como o SAPI e outras para abreviar este processo.
    Sobre a serialização deste sinal, você será basicamente "obrigado" a trabalhar com filas de tamanho fixo , pois os dados devem ser armazenados em sequência e serem despachados em blocos ANTES de serem repassados as funções VISA. Uma dica é repassar essa informação utilizando dados do tipo Digital (0,1) em vetores bidimensionais para assegurar que a mensagem seja serializada completamente (sem perder nenhum bit pelo caminho)
    Você irá precisar de 3 Loops: Um para a captura dos dados, um para interpretação e arranjo e outro para envio das informações. Pesquise sobre a arquitetura QMH ou P/C. Não é necessário usar nada mais complexo neste quesito
    Espero que eu tenha ajudado
    "In theory, theory and practice are the same. In practice, they’re not."

  • Deploying only Acrobat XI Pro CC package w/ Enterprise Serial # - Still getting "Sign In Required"

    Downloaded Creative Cloud Packager to create a serialized package of only Acrobat XI Pro.  I further customize the deployment via Adobe Customization Wizard XI, but did not re-enter the serial number (as suggested).  I am able to deploy from the Exceptions folder with the following cmd, msiexec /i "%inst%AcroPro.msi" PATCH="%inst%Updates\AcrobatUpd11006.msp" TRANSFORMS="%inst%Transforms\en_US.mst" /qn.  Upon launching Acrobat, I receive the a pop-up message, "Sign In Required.  Siging in with an Adobe ID and registering Creative Cloud Membership Enterprise is required within 32767 days otherwise it will stop working."  I don't understand why the serial number and Adobe ID I enterred when packaging did not carry over.  Any insight would be appreciated.

    Downloaded Creative Cloud Packager to create a serialized package of only Acrobat XI Pro.  I further customize the deployment via Adobe Customization Wizard XI, but did not re-enter the serial number (as suggested).  I am able to deploy from the Exceptions folder with the following cmd, msiexec /i "%inst%AcroPro.msi" PATCH="%inst%Updates\AcrobatUpd11006.msp" TRANSFORMS="%inst%Transforms\en_US.mst" /qn.  Upon launching Acrobat, I receive the a pop-up message, "Sign In Required.  Siging in with an Adobe ID and registering Creative Cloud Membership Enterprise is required within 32767 days otherwise it will stop working."  I don't understand why the serial number and Adobe ID I enterred when packaging did not carry over.  Any insight would be appreciated.

  • Using a serial Wacom tablet on a Mac Pro

    I have a good Wacom tablet with serial port interface that I would like to connect to a Mac Pro.
    Is there some way to do this? Is there any sort of serial to usb adapter or would that not work with a Mac Pro?
    Thanks for any advice.

    I don't think so. See these knowledge base articles from Wacom:
    http://www.wacom.com/faqs/knowledge_search.cfm?id=67
    http://www.wacom.com/faqs/knowledge_search.cfm?id=185

  • Resized animated gif ImageIcon not working properly with JButton etc.

    The problem is that when I resize an ImageIcon representing an animated gif and place it on a Jbutton, JToggelButton or JLabel, in some cases the image does not show or does not animate. More precicely, depending on the specific image file, the image shows always, most of the time or sometimes. Images which are susceptible to not showing often do not animate when showing. Moving over or clicking with the mouse on the AbstractButton instance while the frame is supposed to updated causes the image to disappear (even when viewing the non-animating image that sometimes appears). No errors are thrown.
    Here some example code: (compiled with Java 6.0 compliance)
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test
         public static void main(String[] args)
              new Test();
         static final int  IMAGES        = 3;
         JButton[]           buttons       = new JButton[IMAGES];
         JButton             toggleButton  = new JButton("Toggle scaling");
         boolean            doScale       = true;
         public Test()
              JFrame f = new JFrame();
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JPanel p = new JPanel(new GridLayout(1, IMAGES));
              for (int i = 0; i < IMAGES; i++)
                   p.add(this.buttons[i] = new JButton());
              f.add(p, BorderLayout.CENTER);
              f.add(this.toggleButton, BorderLayout.SOUTH);
              this.toggleButton.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent e)
                        Test.this.refresh();
              f.setSize(600, 300);
              f.setVisible(true);
              this.refresh();
         public void refresh()
              this.doScale = !this.doScale;
              for (int i = 0; i < IMAGES; i++)
                   ImageIcon image = new ImageIcon(i + ".gif");
                   if (this.doScale)
                        image = new ImageIcon(image.getImage().getScaledInstance(180, 180, Image.SCALE_AREA_AVERAGING));
                   image.setImageObserver(this.buttons);
                   this.buttons[i].setIcon(image);
                   this.buttons[i].setSelectedIcon(image);
                   this.buttons[i].setDisabledIcon(image);
                   this.buttons[i].setDisabledSelectedIcon(image);
                   this.buttons[i].setRolloverIcon(image);
                   this.buttons[i].setRolloverSelectedIcon(image);
                   this.buttons[i].setPressedIcon(image);
    Download the gif images here:
    http://djmadz.com/zombie/0.gif
    http://djmadz.com/zombie/1.gif
    http://djmadz.com/zombie/2.gif
    When you press the "Toggle scaling"button it switches between unresized (properly working) and resized instances of three of my gif images. Notice that the left image almost never appears, the middle image always, and the right image most of the time. The right image seems to (almost) never animate. When you click on the left image (when visble) it disappears only when the backend is updating the animation (between those two frames with a long delay)
    Why are the original ImageIcon and the resized ImageIcon behaving differently? Are they differently organized internally?
    Is there any chance my way of resizing might be wrong?

    It does work, however I refuse to use SCALE_REPLICATE for my application because resizing images is butt ugly, whether scaling up or down. Could there be a clue in the rescaling implementations, which I can override?
    Maybe is there a way that I can check if an image is a multi-frame animation and set the scaling algorithm accordingly?
    Message was edited by:
    Zom-B

  • HT1349 How do you get help from apple if you don't know where to find the serial number of my "product."  I don't know if they mean my itunes program, my iphone, my computer, which one, the number on the computer (is there one), or something in Windows or

    How are you supposed to get help from Apple if you don't know what your serial number is?  They say to input the serial number of the "product" that you are asking about.  Since my problem is how to deauthorize/authorize computers, and they are saying I have more than 5 (which I have never owned more than 5 computers in my life), I can't imagine what serial number they mean.  Does it mean your desktop computer?  If so, which one?  Do they mean your device?  LIke your iPhone, iPod or whatever?  Do they mean the software ON one of your computers and/or devices?  If so, which program, and on which computer/device?
    We have three operational computers, one does not have iTunes on it.  Since Apple is saying I have more than 5 authorized computers, and I can't imagine what they are, I am afraid to deauthorize all my computers.  See what I mean?  I just wanted to ask the question about how I can find out WHICH computers Apple thinks I have authorized, so I can decide if it's safe to deauthorize them all or not.  I only know of 2 computers that have iTunes on them, so how can there be 5?  We also have 2 iPhones and 2 iPods in this family, but one of the iPhones has his own apple id.  He may have been using mine, since his computer died.  I read that those don't count as "computers" to the 5.  Do they, then?
    Help!  I can't contact apple because I have no idea what they mean about serial number.  I doubt they would help me anyway.  In order to get the serial number off my desktop computer (that has iTunes on it already), I will have to move furniture, so I don't want to if that's not it.  Is there some way to find the serial number in the software, either on my desktop or my iPhone?

    sunshinecowgill wrote:
    We have three operational computers, one does not have iTunes on it.  Since Apple is saying I have more than 5 authorized computers, and I can't imagine what they are, I am afraid to deauthorize all my computers.  See what I mean?  I just wanted to ask the question about how I can find out WHICH computers Apple thinks I have authorized, so I can decide if it's safe to deauthorize them all or not. 
    You could have more 5 computers authorized if you ever, for example, reformatted a hard drive or replaced a hard drive without deauthorizing the computer first. Apple's system would see that as a different computer, even though you don't. There's nothing to be afraid of in deauthorizing everything and the reauthorizing what you actually have. You won't lose any data. Mistimp is correct, they can't tell you which computers are authorized.

  • How Many Times Can I Use The Same Serial Number For Adobe Creative Suite 4?

    I have design standard and was told I can use the same serial number on multiple computers. How many time can I use it? And say I install it on the maximum number of computers, but get a new computer, can I uninstall it on one of the old computers and use it on the new one? And can I use the programs on both computers simultaneously or do I have to use them one at a time?

    Fred Tech wrote:
    Broadly speaking, it depends on the type of license you have.
    Specifically, if you have a single license then officially, you should only install it once on one computer.
    Practically, (unless it has changed with CS4) you maybe able to install it on more then one computer, BUT can only run one instance of the software at a time. You can not run more then one instance of the software concurrently; i.e. you can't run Dreamweaver on Computer 1 and Photoshop on Computer 2. That would be two instances, and is not permitted.
    This is my understanding. I am happy to be corrected if I am wrong
    Fred
    Sorry Fred you are wrong.
    If you have a single license you can install it on as many computers as you like. you can only activate the suite on two computers at anyone time. Work and Home or as many of us do it Desktop and Laptop. You can not use the computers simultaneously. You only have 20 activation/deactivations so use them wisely. Student versions only have one activation. You can not break up the suite installs the suite is considered one application.

Maybe you are looking for

  • Cannot view messages after upgrade from SP07 to SP10

    Hi, we are facing now problem with ITSM - after upgrade, because of our oversight, roles for ITSM was overwriten by new versions, and when user logs into ITSM, it cannot write and even see any tickets. Only one error message is showing - No authorisa

  • Save for Previous version and post!

    Hi,  This is a request for all the users posting in the NI Discussion forum. Please save your VI for the previous version (atleast to 8.6) before posting because the people who knows your best solution might not have the latest version that becomes t

  • How to convert a String to an Icon

    Hello, I'm trying to figure out how to convert a String (specifically one letter) to an Icon for a JTree. The program I am working on uses .png files for the icons at the moment, with each .png being a single uppercase letter. However, recent discuss

  • Change color of check box symbols

    How do I in LiveCycle Designer change the color of a check mark? I need one check mark to be blue, 30pt and another to be red, 30pt?

  • FQDN Query when publishing the Lync 2010 Topology

    Hello All While am Defining  the Topology for Lync 2010 Enterprise Edition , in which the define of  SQL store , i forgot to mention the FQDN of SQL server name, instead i was mentioned only server name. my sql server FDQN is SQL.doitnow.com Define a