Problem with doLayout() / validate() / invalidate()

Hi, Java developers!!!
Ok, this is my current situation:
My application is as follows:
....................................Frame
...............................(BorderLayout)
.........................................|
................./----------------+-----------------\
................|.......................|.........................|
............NORTH:...............CENTER:..............SOUTH:
............Canvas.................Panel................TextField
.................................(BorderLayout)
.........................................|
.........................../---------+---------\
..........................|.............................|
....................CENTER:.......................EAST:
......................Panel..........................Panel
................(BorderLayout).............(BorderLayout)
........................|..................................|
.........|..............|............|..............|..............|
.....SOUTH:....CENTER:....EAST:......CENTER:......EAST:
....Scrollbar....Canvas....Scrollbar.....Canvas......Scrollbar
.(Horizontal)................(Vertical)........(X).......(Vertical)
The Canvas component marked as (X) has special code
that makes it's width resizable. In fact, what I did was:
public Dimension getPreferredSize()
Dimension sd;
Dimension cd;
sd = parentFrame.getSize();
cd = new Dimension(super.getPreferredSize());
cd.width = (int)(((double)sd.width) * widthPercent);
return cd;
Here, widthPercent is a global variable that indicates how
wide must be the component, related to the containing
frame's width.
When I change widthPercent, I do the following:
widthPercent = newWidthPercent;
invalidate();
repaint();
Well, it turns out that, when invoked, the component
does NOT change it's width immediately, but until the
next time I >resize< the Frame. I know the code above
is being executed, since the Frame is seen to be redrawing, but the layout does NOT change. I've tested
with almost everything I could:
doLayout();
validate(); invalidate();
getParent().doLayout();
getParent().validate(); getParent().invalidate();
parentFrame.doLayout();
parentFrame.validate(); parentFrame.invalidate();
etc. but it doesn't seem to work!!! No one changes the layout of the components until I resize the window!!!
Any ideas, please?
- Heriberto Delgado
([email protected])

Sorry for the long delay. I was just preparing the application for posting. The original one was somewhat large, with a lot of stuff that could hide the true problem. I narrowed it the most I could, while still showing the behavior I mentioned before. Here it is:
(The panel at the right is the resizable one. It's supposed to resize with the black stripe between the
right & left panels, which it does, but it shows up only until the window is resized.)
import java.awt.*;
import java.awt.event.*;
public class MainAppTest extends Frame
     class MapViewer extends Canvas
          public MapViewer()
               super();
               setBackground(Color.white);
     class SpriteViewer extends Canvas
          double widthPercent;
          Cursor resizeCursor;
          int initDraggedPosX;
          Frame parentFrame;
          public SpriteViewer(Frame newParentFrame)
               super();
               setBackground(Color.lightGray);
               setFont(new Font("SansSerif",Font.PLAIN,12));
               parentFrame = newParentFrame;
               widthPercent = 0.2;
               resizeCursor = Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR);
               enableEvents(MouseEvent.MOUSE_CLICKED |
               MouseEvent.MOUSE_MOVED |
               MouseEvent.MOUSE_DRAGGED);
          public void processMouseEvent(MouseEvent e)
               int i,m;
               super.processMouseEvent(e);
               switch(e.getID())
                    case MouseEvent.MOUSE_CLICKED:
                         if(e.getX() < 5)
                              initDraggedPosX = e.getX();
                         break;
          public void processMouseMotionEvent(MouseEvent e)
               Dimension fd;
               Dimension cd;
               Cursor newCursor;
               int newWidth;
               double newWidthPercent;
               super.processMouseMotionEvent(e);
               switch(e.getID())
                    case MouseEvent.MOUSE_MOVED:
                         if(e.getX() < 5)
                              newCursor = resizeCursor;
                         } else
                              newCursor = Cursor.getDefaultCursor();
                         if(!(newCursor.equals(getCursor())))
                              setCursor(newCursor);
                         break;
                    case MouseEvent.MOUSE_DRAGGED:
                         if(getCursor().equals(resizeCursor))
                              fd = parentFrame.getSize();
                              cd = getSize();
                              newWidth = cd.width + initDraggedPosX - e.getX();
                              if(fd.width!=0)
                                   newWidthPercent = ((double)newWidth)
                                   / ((double)fd.width);
                                   if(newWidthPercent<0.05)
                                        newWidthPercent = 0.05;
                                   if(newWidthPercent>0.9)
                                        newWidthPercent = 0.9;
                                   if(widthPercent != newWidthPercent)
                                        widthPercent = newWidthPercent;
                                        parentFrame.invalidate();
                                        parentFrame.validate();
                                        parentFrame.repaint();
                         break;
          public Dimension getPreferredSize()
               Dimension sd;
               Dimension cd;
               sd = parentFrame.getSize();
               cd = new Dimension(super.getPreferredSize());
               cd.width = (int)(((double)sd.width) * widthPercent);
               return cd;
          public void paint(Graphics g)
               Dimension cd;
               cd = getSize();
               g.setColor(Color.black);
               g.fillRect(0,0,
               5,cd.height - 1);
               g.setColor(Color.lightGray);
               g.fillRect(5,0,
               cd.width - 6,cd.height - 1);
     MapViewer CurrentMapViewer;
     Scrollbar HorizMapScrollbar;
     Scrollbar VertMapScrollbar;
     SpriteViewer CurrentSpriteViewer;
     Scrollbar VertSpriteScrollbar;
     Panel StatusBar;
     public MainAppTest(String[] args)
          super("Test");
          AppStart();
     public void AppStart()
          Class c;
          Panel p,p2,p3;
          Dimension sd;
          GridBagLayout gbl;
          GridBagConstraints gbc;
          TextField tf;
          setLayout(new BorderLayout(0,0));
          p = new Panel(new BorderLayout(0,0));
          CurrentMapViewer = new MapViewer();
          p.add(BorderLayout.CENTER,CurrentMapViewer);
          HorizMapScrollbar = new Scrollbar(Scrollbar.HORIZONTAL);
          p.add(BorderLayout.SOUTH,HorizMapScrollbar);
          VertMapScrollbar = new Scrollbar(Scrollbar.VERTICAL);
          p.add(BorderLayout.EAST,VertMapScrollbar);
          p2 = new Panel(new BorderLayout(0,0));
          CurrentSpriteViewer = new SpriteViewer(this);
          p2.add(BorderLayout.CENTER,CurrentSpriteViewer);
          VertSpriteScrollbar = new Scrollbar(Scrollbar.VERTICAL);
          p2.add(BorderLayout.EAST,VertSpriteScrollbar);
          p3 = new Panel(new BorderLayout(0,0));
          p3.add(BorderLayout.CENTER,p);
          p3.add(BorderLayout.EAST,p2);
          add(BorderLayout.CENTER,p3);
          StatusBar = new Panel();
          StatusBar.setBackground(Color.lightGray);
          gbl = new GridBagLayout();
          gbc = new GridBagConstraints();
          StatusBar.setLayout(gbl);
          gbc.weightx = 1;
          gbc.weighty = 1;
          gbc.insets = new Insets(0,0,0,0);
          gbc.fill = GridBagConstraints.BOTH;
          gbc.anchor = GridBagConstraints.CENTER;
          gbc.gridwidth = GridBagConstraints.REMAINDER;
          gbc.gridheight = 1;
          tf = new TextField();
          gbl.setConstraints(tf,gbc);
          StatusBar.add(tf);
          add(BorderLayout.SOUTH,StatusBar);
          addWindowListener
               new WindowAdapter()
                    public void windowClosing(WindowEvent e)
                         AppStop();
          pack();
          sd = getToolkit().getScreenSize();
          setSize(sd.width * 8 / 10, sd.height * 8 / 10);
          show();
          CurrentSpriteViewer.requestFocus();
     public void AppStop()
          System.exit(0);
     public static final void main(String[] args)
          new MainAppTest(args);

Similar Messages

  • Experiencing problems with workflow- validate step

    I am experiencing problems with workflow->validate step in Hyperion FDM.
    I am not able to export unmapped dimension members to Excel.
    Earlier everything worked fine.
    But now all of a sudden it has become a serious problem.
    when I click Export to Excel,processing starts and it's never coming to an end.
    Every thing is getting stuck up.
    Could any one suggest solution to this as it is delaying my deliverable.

    Try opening excel first, then doing the export from FDM.

  • Problem with when validate trigger

    Hi All,
    I am using oracle forms 10g.
    I have developed a custom form In that i have two block Header block and Detail block.In the header block some fields like Po number, po amount , supplier name, supplier site etc. And in the detail block i have po line details.
    I have written a validation trigger under supplier name and supplier site, IF block.supplier_name is null then
    message('enter supplier name') same under every field.
    Now when the user enter po number it will go to po amount field and now when the user press tab it will go to the details block and query all the po related line,so i have written key-next under po_amount go-block and my code, Its works fine and giving the correct output. But the problem is When validate trigger fires when i press tab in PO Amount fields, Once i press ok it going to details block and querying.
    Can any one explain me what i have done wrong. The validation trigger is firing and giving message.
    Regards
    Srikkanth

    Srikkanth.M wrote:
    Hi All,
    I am using oracle forms 10g.
    I have developed a custom form In that i have two block Header block and Detail block.In the header block some fields like Po number, po amount , supplier name, supplier site etc. And in the detail block i have po line details.
    I have written a validation trigger under supplier name and supplier site, IF block.supplier_name is null then
    message('enter supplier name') same under every field.
    Now when the user enter po number it will go to po amount field and now when the user press tab it will go to the details block and query all the po related line,so i have written key-next under po_amount go-block and my code, Its works fine and giving the correct output. But the problem is When validate trigger fires when i press tab in PO Amount fields, Once i press ok it going to details block and querying.Hey, Srikkanth
    Once you said
    when the user enter po number it will go to po amount field and now when the user press tab it will go to the details block and query all the po related line,so i have written key-next under po_amount go-block and my code, Its works fine and giving the correct output.again you said
    But the problem is When validate trigger fires when i press tab in PO Amount fieldsSo, i'm not getting you..
    Can you clear it any more ? or any other way..

  • 1 year ago i installed Elements 12 on my PC with a serial number.  Today i have installed Elements 12 also on my laptop. But,...there is a problem with validation of the serial number on my laptop. Is there a need to validate Elements  or will this progra

    One year ago i installed Elements 12 on my PC with a serial number and it was OK.
    Today i have installed Elements 12 also on my laptop.
    But,...there is a problem with validation of the serial number on my laptop. Is there a need to validate Elements  or will this program real disapeare in 7 days?
    Hans

    Hi,
    Since you already have one copy activated the serial number must be logged in your account details - I would first check that the one logged and the one you are attempting to enter are the same.
    You can check your account details by going to www.adobe.com and clicking on Manage Account. You need to sign in with your Adobe Id and then click on View All under Plans & Products. Next click on View your products and after a while it should produce your list.
    If there is a problem with the serial number, only Adobe can help you there (we are just users). Please see the response in this thread
    First of all, I would have to say that getting in touch with you is a nightmare and I am not at all happy that I can't just email or live chat with someone who can help!  I am not a technical person, I just want to be able to use Photoshop Elements and ge
    Brian

  • Has anyone had this problem with VPN iPad vpn connection could not validate the server certificate

    Has anyone had this problem with IPad 3 after upgrade to IOS 7,
    trying to to connect VPN , but I get this messag, "could not validate the server certificate".
    I am trying to connect to Oracle VPN.

    Has anyone found a solution for this yet? I am still getting the could not validate server certificate error. I have tried importing the entire certificate chain as well as importing each individual cert in the chain. My certificate works perfectly with the cisco vpn on my pc.
    This is my first experience owning an apple product, and I am very disappointed with the customer support that I have received. I tried calling the help line and no one would even attempt to answer my question. I was then told that the Mac "geniuses" wouldn't know either and that I may be able to find an answer on the message boards. So I am reaching out to the community...Has anyone been able to figure out how to resolve this issue or even the specific cause? Any help is appreciated.

  • Problem with setContentPane() in JFrame class

    I recently discovered a problem with the setContentPane method in the JFrame class. When I use setContentPane(Container ..), the previously existing contentPane remains in the stack. I have tried nullifying getContentPane(), and all manner of things, but, each time I use setContentPane, I have another instance of a JPanel in the stack.
    I'm using code similar to setContentPane(new CustomJPanel()); and each time the user changes screens, and a similar call to that is made, the old CustomJPanel instance remains in the stack. Can anyone suggest a way around this? On their own the panels do not take up very much memory, but after several hours of usage, they will build up.

    I tried what you suggested; it only resulted in a huge performance decrease. The problem with memory allocation is still there.
    Here is the method I use to switch screens in my app:
    public static void changeScreen (JPanel panel){
              try{
                   appFrame.setTitle("Wordinary : \""+getTitle()+"\"");
                   appFrame.setContentPane(panel);
                   appFrame.setSize(appFrame.getContentPane().getPreferredSize());     
                   appFrame.getContentPane().setBackground(backColour);
                   for (int i = 0; i < appFrame.getContentPane().getComponents().length; i++)
                        appFrame.getContentPane().getComponents().setForeground(textColour);
                   //System.out.println("Background colour set to "+backColour+" text colour set to "+textColour);
                   appFrame.validate();
              catch (Exception e){
                   //System.out.println("change");
                   e.printStackTrace();
    And it is called like this:
    changeScreen(new AddWordPanel());The instantiation of the new instance is what is causing the memory problems, but I can't think of a way around it.

  • Problem with JTable and JPanel

    Hi,
    I'm having problems with a JTable in a JPanel. The code is basicly as follows:
    public class mainFrame extends JFrame
            public mainFrame()
                    //A menu is implemeted giving rise to the following actions:
                    public void actionPerformed(ActionEvent evt)
                            String arg = evt.getActionCommand();
                            if(arg.equals("Sit1"))
                            //cells, columnNames are initiated correctly
                            JTable table = new JTable(cells,columnNames);
                            JPanel holdingPanel = new JPanel();
                            holdingPanel.setLayout( new BorderLayout() );
                            JScrollPane scrollPane = new JScrollPane(holdingPanel);
                            holdingPanel.setBackground(Color.white);
                            holdingPanel.add(table,BorderLayout.CENTER);
                            add(scrollPane, "Center");
                            if(arg.equals("Sit2"))
                                    if(scrollPane !=null)
                                            remove(scrollPane);validate();System.out.println("ScrollPane");
                                    if(holdingPanel !=null)
                                            remove(holdingPanel);
                                    if(table !=null)
                                            remove(table);table.setVisible(false);System.out.println("table");
                            //Put other things on the holdingPanel....
            private JScrollPane scrollPane;
            private JPanel holdingPanel;
            private JTable table;
    }The problem is that the table isn't removed. When you choose another situation ( say Sit2), at first the table apparently is gone, but when you press with the mouse in the area it appeared earlier, it appears again. How do I succesfully remove the table from the panel? Removing the panel doesn't seem to be enough. Help is much appreciated...
    Best regards
    Schwartz

    If you reuse the panel and scroll pane throughout the application,
    instantiate them in the constructor, not in an often-called event
    handler. In the event handler, you only do add/remove of the table
    on to the panel. You can't remove the table from the container
    which does not directly contain it.
    if (arg.equals("Sit2")){
      holdingPanel.remove(table);
      holdingPanel.revalidate();
      holdingPanel.repaint(); //sometimes necessary
    }

  • Problem with set_item_instance_property and set_lov_property

    Hello guys,
    I am using oracle forms 6i and new to it. I am having a multi data block.
    I am facing a problem when I try to set the item instance property with respect to the list type.
    1) Basically, I am having a list item having three types MANUAL, INVOICE and BOE. All are independent of each other. I am facing the problem with the MANUAL type.
    I have written this code on When-Validate-Trigger of the list item as well as When-List-Changed. Also I am not setting the properties of any items initially(neither on When-New-Form-Instance nor on When-New-Block-Instance).
    if block.doc_type = 'MANUAL' then
    set_item_instance_property('BLOCK.VENDOR_NO', to_number(:system.cursor_record), REQUIRED,PROPERTY_TRUE);
    end if;
    But I am getting this warning/error frm 41383 - no such property for set_item_instance_property on both the triggers for the first time when I open the form and thereafter. During the same form session, if I click on the next line it shows a message Field cannot be empty and directs to the item where I compulsory need to insert a value. I also tried using to_number(:system.trigger_record) but getting the same issue. There are many more items I need to set the same property for.
    2)The invoice item on the block/form has a LOV. Another requirement is when I select 'MANUAL' , that LOV should not appear on selection of 'MANUAL' type and the user should be able to insert the value manually and validate manually. I did use set_lov_property, but did not get the correct usage. Please assist as soon as you can.
    Edited by: 1005292 on May 20, 2013 12:04 PM

    Just out of my interest I would like to know what you exactly meant by "The :SYSTEM.CURSOR_RECORD reflects where the navigation cursor is; which could be different from the record that is initiating the event." in your reply.If you look at the Forms Help for both objects, you will see that...
    SYSTEM.CURSOR_RECORD represents the number of the record where the cursor is located. This number represents the record's current physical order in the block's list of records. The value is always a character string.
    SYSTEM.TRIGGER_RECORD represents the number of the record that Form Builder is processing. This number represents the record's current physical order in the block's list of records. The value is always a character string. Through PL/SQL you can send (using the GO_ITEM, GO_BLOCK and GO_RECORD built-ins) the interenal Forms Cursor to a different item, block or record within the current block. If, you GO to a different block or record in the same body of code and you then evaluated the :SYSTEM.CURSOR_RECORD and compared it with the :SYSTEM.TRIGGER_RECORD you would find that they are generally different.
    2) In response to the second one, do you want to say that when it I select MANUAL I do not use the set_item_property OR use this property and attach an LOV which does not return anything OR use this property, give the name of the same of the same LOV,I am using and set PROPERTY_FALSE. First a litte back ground. When an Item has an LOV assigned to it, Oracle Forms automatically displays what it calls the "LOV List Lamp" in the status bar. With Forms 9i and higher, it displays and "List of Valu..." in the status bar when an item has an LOV assigned to it. Items can have an LOV assigned during design-time or during run-time. You cannot, however, unassign an LOV during Run-time becuase the SET_ITEM_PROPERTY built-in requires you to pass a valid LOV object name.
    Well, as I was writing this, it occured to me that you will not be able to set the LOV assigned to your multi-row item at run-time either because once you assign an LOV to an item in a multi-row block, all occurances of the Item will have the LOV assigned. This being the case, I would recommend using a button and give it the appearance of enabled or disabled by using the VISUAL_ATTRIBUTE property and add code to the button so that if the row status is MANUAL then nothing happens. Using this method, you would create two Visual Attribute (VA) objects; ENABLED and DISABLED. The ENABLED VA would make the button look like a normal button while the DISABLED VA would make the button look like it is disabled (grey out button text, etc).
    I would also like to know when to use set_lov_property and if you could explain in brief with an example.The only time I have used the SET_LOV_PROPERTY() built-in is when I needed to change the Record Group query assigned to the LOV. We have a form where depending on the "Action" selected, the LOV for a certain item needed to change. The values returned by the LOV were still assigned to the same block items, so rather than create multiple LOVs and set the Column Mapping for each LOV, I just create a Record Group object for each action and then used the SET_LOV_PROPERTY() built-in to change the LOV TITLE and GROUP_NAME. This way, I was able to reuse the LOV and it's existing column mappings while changing the record group that provided the data for the LOV.
    The problem lies when I am entering the fields after the invoice number. The fields before the invoice no including the field of invoice no hold the value entered but when I click/press a tab key to go on to the next field the values in the earlier fields(i.e fields before invoice no and invoice no field) disappear i.e. the values do not hold their place and again prompts me from start to enter the vendor no.Are you navigating to a new row/record? That could explain the disappearing data. If not, then I would look for a trigger on the item you're navigating too or for a Block level When-New-Item-Instance trigger that has code that sets the items to null. It sounds like something in the design is causing the field values to disappear (get set to NULL) so I would look at what happens in your form when a navigation event occurs.
    @Andreas - actually, REQUIRED is a valid property for the Set-Item-Instance-Property() built-in. ;)
    Hope this helps,
    Craig...

  • Problem With ObjectSream and GUI

    Hi
    I had a problem with the sendBtn ActionListener. When i press the send button the application freeze and the button freeze pressed.
    But when i put some code to do the same think that send button should do, into the main method everything works fine. Any help?
    Thanks in advanced and sorry for my english
    //Some imports
    public class SampleCommunicationAgentGUI extends BaseCommunicationAgent {
         public SampleCommunicationAgentGUI(String name) {
              super(name);
              try {
                   connectToACS("127.0.0.1", 3333);
              } catch (IOException e) {
                   System.out.print("\nNetwork error while connecting to ACS ("
                             + e.getMessage() + ")");
              } catch (ClassNotFoundException e) {
                   System.out.print("\nNetwork error while connecting to ACS ("
                             + e.getMessage() + ")");
              frame = new SampleAgentFrame(name);
              frame.sendBtn.addActionListener(new java.awt.event.ActionListener() {
                   public void actionPerformed(java.awt.event.ActionEvent evt) {
                        KQML message = new KQML();
                        message.setSender(getName());
                        message.setReceiver(frame.receiverField.getText());
                        message.setContent(frame.contentField.getText());
                        message.setInReplyTo(frame.inReplyToField.getText());
                        message.setLanguage(frame.languageField.getText());
                        message.setOntology(frame.ontologyField.getText());
                        message.setPerformative(frame.perfomativeField.getText());
                        message.setReplyWith(frame.inReplayWithField.getText());
                        System.out.println(message.getTotalMsg());
                        try {
                             sendMessage(message); // A method of BaseCommunicationAgent
                        } catch (Exception e) {
                             e.printStackTrace();
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.validate();
              frame.setLocationRelativeTo(null);
              frame.setVisible(true);
         public static SampleAgentFrame frame;
         public static void main(String[] args) {
              KQML message;
              SampleCommunicationAgentGUI agent = new SampleCommunicationAgentGUI("Chris");
              if (!agent.getACSStatus().equals(ACSStatus.CONNECTED)) {
                   System.out.println("\nERROR: Could not connect on ACS!");
                   return;
              /*If i put this code here everything works fine
                    * message = new KQML();
                    * agent.sendMessage(message);
              while (true) {
                   message = agent.getMessage();
                   frame.messageTextArea.append(message.getContent() + "\r\n");
         protected static class SampleAgentFrame extends JFrame {
              //Some variables
              public SampleAgentFrame(String name) {
                   setTitle(name);
                   initComponents(name);
               * Initializes the GUI.
              private void initComponents(String name) {
                   //Inits the GUI but is to big to post it.
    }And the BaseCommunicationAgent
    //Some imports
    public class BaseCommunicationAgent extends BaseAgent {
         public static enum ACSStatus {
              INITIALIZING, INITIALIZED, CONNECTING, CONNECTED
         private Socket socketACS;
         private ObjectOutputStream dataOut;
         private ObjectInputStream dataIn;
         protected ACSStatus statusACS;
         private KQML kqmlMessage;
         public BaseCommunicationAgent(String name) {
              super(name);
              statusACS = ACSStatus.INITIALIZING;
              socket = null;
              dataOut = null;
              dataOut = null;
              kqmlMessage = null;
              statusACS = ACSStatus.INITIALIZED;
         protected synchronized boolean connectToACS(String address, int port)
                   throws IOException, ClassNotFoundException {
              try {
                   statusACS = ACSStatus.CONNECTING;
                   socketACS = new Socket(address, port);
                   dataOut = new ObjectOutputStream(socketACS.getOutputStream());
                   dataIn = new ObjectInputStream(socketACS.getInputStream());
                   kqmlMessage = new KQML();
                   KQML message;
                   boolean isComment;
                   do {
                        message = (KQML) dataIn.readObject();
                        isComment = message.getPerformative().equals("comment");
                        if (isComment) {
                             System.out.println(message.getContent());
                   } while (isComment);
                   if (message.getPerformative().equals("identify")) {
                        kqmlMessage.resetMessage();
                        kqmlMessage.setPerformative("who-am-i");
                        kqmlMessage.setSender(getName());
                        dataOut.writeObject(kqmlMessage);
                        dataOut.flush();
                        dataOut.reset();
                        do {
                             message = (KQML) dataIn.readObject();
                             isComment = message.getPerformative().equals("comment");
                             if (isComment) {
                                  System.out.println(message.getContent());
                        } while (isComment);
                        if (message.getPerformative().equals("registered")) {
                             statusACS = ACSStatus.CONNECTED;
                        } else {
                             System.out.println(message.getContent());
                             socketACS.close();
                             statusACS = ACSStatus.INITIALIZING;
                   } else {
                        System.out.println(message.getContent());
                        socketACS.close();
                        statusACS = ACSStatus.INITIALIZING;
              } catch (IOException e) {
                   statusACS = ACSStatus.INITIALIZING;
                   throw e;
              } catch (ClassNotFoundException e) {
                   statusACS = ACSStatus.INITIALIZING;
                   throw e;
              return statusACS.equals(ACSStatus.CONNECTED);
         public ACSStatus getACSStatus() {
              return statusACS;
         protected synchronized void closeConnectionWithACS() { // Only the
                                                                               // dataOut.close()
              try {
                   dataOut.flush();
                   dataOut.close();
                   dataIn.close();
                   socketACS.close();
              } catch (IOException ex) {
                   ex.printStackTrace();
         protected synchronized void sendMessage(KQML message) throws IOException {
              dataOut.writeObject(message);
              dataOut.flush();
              dataOut.reset();
         protected synchronized KQML getMessage() {
              KQML message = new KQML();
              try {
                   message = (KQML) dataIn.readObject();
                   return message;
              } catch (IOException e) {
                   e.printStackTrace();
              } catch (ClassNotFoundException e) {
                   e.printStackTrace();
              return message;
    }

    Thanks for the answer. I take a look at Swing Worker but i have a few problems :
    1)The GUI doesn't freeze but nothing happens either.
    2) When i remove the sendMessage method and i put only a System.out.println(somethingToPrint); it works but only once. After i hit second time my send button nothing happens. Somewhere i read that works only once is that true or i misunderstood? And if yes how i can do it every time i press the send button?
    Could you take a look at my code?
    Thanks in advanced
    //Some imports
    public class SampleCommunicationAgentGUI extends BaseCommunicationAgent {
         public SampleCommunicationAgentGUI(String name) {
              super(name);
              try {
                   // agent.connectToREVE("127.0.0.1", 4444);
                   connectToACS("127.0.0.1", 3333);
              } catch (IOException e) {
                   System.out.print("\nNetwork error while connecting to ACS ("
                             + e.getMessage() + ")");
              } catch (ClassNotFoundException e) {
                   System.out.print("\nNetwork error while connecting to ACS ("
                             + e.getMessage() + ")");
                final SwingWorker worker =
                    new SwingWorker() {
                        @Override
                        protected KQML doInBackground() throws Exception {
                             KQML message = new KQML();
                             message.setSender(getName());
                             message.setReceiver(frame.receiverField.getText());
                             message.setContent(frame.contentField.getText());
                             message.setInReplyTo(frame.inReplyToField.getText());
                             message.setLanguage(frame.languageField.getText());
                             message.setOntology(frame.ontologyField.getText());
                             message.setPerformative(frame.perfomativeField.getText());
                             message.setReplyWith(frame.inReplayWithField.getText());
                             System.out.println(message.getTotalMsg());
                             sendMessage(message);
                             return message;
              frame = new SampleAgentFrame(name);
              frame.sendBtn.addActionListener(new java.awt.event.ActionListener() {
                   public void actionPerformed(java.awt.event.ActionEvent evt) {
                        try{
                             worker.execute();
                        } catch (Exception e) {
                             e.printStackTrace();
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.validate();
              frame.setLocationRelativeTo(null);
              frame.setVisible(true);
         public static SampleAgentFrame frame;
         public static void main(String[] args) {
              KQML message;
              SampleCommunicationAgentGUI agent = new SampleCommunicationAgentGUI("Chris");
              if (!agent.getACSStatus().equals(ACSStatus.CONNECTED)) {
                   System.out.println("\nERROR: Could not connect on ACS!");
                   return;
              while (true) {
                   message = agent.getMessage();
                   frame.messageTextArea.append(message.getContent() + "\r\n");
         protected static class SampleAgentFrame extends JFrame {
              //Some variables
              public SampleAgentFrame(String name) {
                   setTitle(name);
                   initComponents(name);
               * Initializes the GUI.
              private void initComponents(String name) {
                   //Init components
    }

  • Problem with valueUnbound() in 5.1 SP12

    We are facing a problem with WLServer 5.1 SP12 when the session gets invalidated.
    Please find the problem description below.
    References:
    1.) SessionListener Class : A class that implements HttpSessionBindingListener
    2.) Login JSP : A JSP which adds the instance of SessionListener object to the
    session once the user is authenticated succuessfully.
    Problem Description:
    Once the SessionListener object is added to the session valueBound() method is
    always called. When the user logs out explicitly valueUnbound() is always called.
    At this point we call the session.invalidate() method.
    However, valueUnbound() is not called after the Inactive interval properly, for
    instances like system crash or closing of browser by the user before he actually
    logs out. Most of the time it works perfectly, but sometimes it happens the above
    mentioned problem comes.
    I am not able to justify whether it is a problem with my code or an issue with
    the wlserver. Appreciate any help in this matter.
    I am giving the important fragments of code below for reference:
    <PRE>
    /*---SessionListener.java ----*/
    public class SessionListener implements HttpSessionBindingListener {
    private String loginUserId; //Holds the user id in the session.
         public SessionListener(String loginUserId) {
              this.loginUserId = loginUserId;
         public void valueBound(HttpSessionBindingEvent event) {
              try {
                   //Initialization code.
                   LogWriter.log(new Date() + "<BOUND>" + loginUserId + ":"+ event.getSession().getId());
              } catch(Exception e) {
                   LogWriter.log("<ERROR OCCURRED DURING BOUND>\n" + e.getMessage());
         public void valueUnbound(HttpSessionBindingEvent event) {
         //Clean up Code.
         LogWriter.log(new Date() + "<UNBOUND>" + loginUserId + ":"+ event.getSession().getId());
    Code fragment from Login.jsp
    SessionListener ssnlstnr = new SessionListener(LoginBn.getLoginId());
    session.setAttribute("ssnLstnrObj", ssnlstnr);
    </PRE>
    Thanks for any help in advance.

    Hi Simon,
    Thanks for your explanation. Yes, we are aware that the session will not be invalidated
    immediately after the system crashes or the browser is closed. We are using weblogic
    5.1 , so use weblogic.properties file instead of weblogic.xml. The property used
    is, 'weblogic.httpd.session.timeoutSecs'. Currently, it is set to 600 seconds.
    So, the session should be invalidated after 10 minutes if there is no activity
    done, even in the cases of system crash. This is inturn fires the valueUnbound()
    method. Most of the times, it is called. But, in some instances, it is
    not called. Is there any way that we can ensure that it is definitely called always,
    although the specs say that it will be called whenever the object is removed from
    the session or the session itself is invalidated.
    Thanks,
    Tejokiran.Y
    Simon Evans <[email protected]> wrote:
    the valueUnbound method will be called when the object is removed from
    the session. this will happen if you explicitly remove the object from
    the session, if you call session.invalidate(), or if the session
    timesout (expires). the session will timeout if the user is inactive
    for
    the time specified in the session-timeout element in web.xml.
    the method will usually not be called on a system crash, and will not
    be
    called when the user closes the browser.
    the session-param InvalidationIntervalSecs in weblogic.xml does not
    specifiy the session timeout, this is an interval for weblogic to check
    for timed-out or invalidated sessions and clean up the memory.
    you can specify the session timeout in weblogic.xml with the
    session-param TimeoutSecs, but this is overridden by the session-timeout
    value in web.xml.
    Tejokiran wrote:
    We are facing a problem with WLServer 5.1 SP12 when the session getsinvalidated.
    Please find the problem description below.
    References:
    1.) SessionListener Class : A class that implements HttpSessionBindingListener
    2.) Login JSP : A JSP which adds the instance of SessionListener objectto the
    session once the user is authenticated succuessfully.
    Problem Description:
    Once the SessionListener object is added to the session valueBound()method is
    always called. When the user logs out explicitly valueUnbound() isalways called.
    At this point we call the session.invalidate() method.
    However, valueUnbound() is not called after the Inactive intervalproperly, for
    instances like system crash or closing of browser by the user beforehe actually
    logs out. Most of the time it works perfectly, but sometimes it happensthe above
    mentioned problem comes.
    I am not able to justify whether it is a problem with my code or anissue with
    the wlserver. Appreciate any help in this matter.
    I am giving the important fragments of code below for reference:
    <PRE>
    /*---SessionListener.java ----*/
    public class SessionListener implements HttpSessionBindingListener{>
         public void valueBound(HttpSessionBindingEvent event) {
              try {
                   //Initialization code.
                   LogWriter.log(new Date() + "<BOUND>" + loginUserId + ":"+ event.getSession().getId());
              } catch(Exception e) {
                   LogWriter.log("<ERROR OCCURRED DURING BOUND>\n" + e.getMessage());
         public void valueUnbound(HttpSessionBindingEvent event) {
         //Clean up Code.
         LogWriter.log(new Date() + "<UNBOUND>" + loginUserId + ":"+ event.getSession().getId());
    Code fragment from Login.jsp
    SessionListener ssnlstnr = new SessionListener(LoginBn.getLoginId());
    session.setAttribute("ssnLstnrObj", ssnlstnr);
    </PRE>
    Thanks for any help in advance.

  • Problem with animated .gif

    I have a problem with animated gifs. So if I set a animated gif as background and a button is over it as in the example below, then everytime the animation goes on the button disappears until I go over it with the mouse. So what can I do to solve this?
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    public class FrameBackImage {
              public static void main(String args []){
                   final JFrame frame = new JFrame("Frame");
                   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   frame.setSize(400, 400);
                   frame.setResizable(false);
                   frame.setLayout(null);
                   java.net.URL imageURL = ImageApp.class.getResource("animatedw.gif");
                   ImageIcon imageIcon = new ImageIcon(imageURL);
                 final JLabel label = new JLabel(imageIcon);
                 label.setBounds(0,0 , 400, 400);
                 frame.getLayeredPane().add(label);
                 JButton button = new JButton ("Exit");
                 button.setBounds(200, 129, 60, 60);
                 button.setBackground(Color.black);
                 button.setForeground(Color.white);
                 frame.add(button);
                 button.addActionListener(
                 new ActionListener(){
                        public void actionPerformed(ActionEvent arg0) {
                             System.exit(0);
                 frame.validate();
                  frame.setVisible(true);
    }

    In the future, Swing related questions should be posted in the Swing forum.
    Your usage of the getLayeredPane() method is something I've never seen before, so I don't know if thats the problem or not.
    How to display a "background image" is asked all the time in the Swing forum. So to familiarize yourself with the forum you can try searching the Swing forum. Using the keywords I highlighted would be a good place to start.

  • Problems with multiple TestStand versions on the same computer

    I installed LabVIEW 2014 and TestStand 2014; then later I installed TestStand 2010 SP1 and have been using it since.  (I also updated LabVIEW 2014 to 14.0f1; I think I did that after installing TestStand 2010 SP1.)  Is this "legal?"  I have been seeing strange behavior with TestStand 2010 SP1:
    - if I type in any expression text boxes in the Sequence Editor (e.g., for a pre-expression), I periodically get an error dialog as I type:
     "The .NET support dll could not be loaded.  This is caused by an assembly path that could not be resolved.  Error Code: -18700, The .NET support dll could not be loaded.  This is caused by an assembly path that could not be resolved! Source: 'TSAPI'
    After I acknowledging the dialog, I can contine to type a little more before getting the dialog again, but it doesn't seem to invalidate anything I type.
    - If I open the Simple LabVIEW Simple User Interface that ships with TestStand 2014 while TestStand 2010 SP1 is active, LabVIEW immediately crashes.  I can open all the subVIs without a problem, but the top-level VI always crashes LabVIEW.
    So I used the TestStand Version Switcher to make TestStand 2014 active, opened the top-level Simple UI VI, and deleted all the UI controls.  Then I switched back to TestStand 2010 SP1, and then I was able to open the top-level VI.  I added back the TestStand UI controls to the VI, and now the VI runs.  But many operations return a TestStand error dialog, such as Close Execution ("Value invalid or out of range [Error Code: -17300]"), Logout ("Cannot find item to select in ComboBox [Error Code: -2147467259]"), and (critically) Exit ("Operation Failed.  Error Code: -17500]") and the X in the upper right corner of the window ("Operation Failed.  Unknown System Error in <VI name>").  So I can't exit without killing LabVIEW.
    These two issues may be unrelated.  But maybe installing an older version of TS after installing a newer version is not a valid use case?  Is the ActiveX error a result of this?  Should it be possible to use a (simple) UI written for a newer version of TestStand be able to work with an older version of TestStand?
    I have another issue that is probably unrelated, but I'll bring it up here just for completeness.  If I right-click on a LV property node or invoke node for a property or method from the TS API and ask for help for the property or method, a command window flashes briefly before showing the TS help window with the top-level item selected (i.e., it doesn't take me to the help for the selected property or method).  I have this problem with either version of TS active, and I saw this problem even before I installed TS 2010 SP1.  I seem to recall having this problem once before, but I can't find the solution.  I don't know if this problem is an indication of some other larger problem.
    For what it's worth, I am running WIndows 8.1 on a virtual machine.

    Thanks for the information, Doug.  Maybe the ActiveX error dialog I get while in the sequence editor is related to the fact that I'm running an unsupported operating system.
    So using a UI that was created in a newer version of TS is not supposed to be able to run with an older version of TS.  Is there any way to enforce this (like having a dialog appear informing you of the incompatibility when the TS engine is loaded) and avoid an immediate crash?  (Maybe the crash has to do with the incomaptible OS as well.)
    Is there a way to "relink" a UI to an older version of TestStand?  Can you just relink all the ActiveX reference controls/constants to the TS ActiveX servers?  As far as I can tell, everything I am trying to do with the new TS version should work with the old version.  And also, as far as I can tell, the TS version switcher changes the version of the available ActiveX server; so unless my UI uses a feature unavailable in older TS versions, I would think it shouldn't know the difference.  (I'm making a lot of assumptions in that last statement, so I may be totally wrong here.)
    Thanks,
    Jeff

  • Problems with file block settings

    We manage file block settings via group policy.  I have run into problems with the file block settings not working as advertised.
    I've run into a couple of issues:
    First, in Excel 2010 I would like to open Web Page and XML files in protected view rather than blocking entirely.  Our "Set Default File Block Behavior" in the GPO is set to "Blocked Files are not opened."  According to the
    documentation, the settings for individual file types should be able to override this behavior but this is not the case in my testing.  If I set "Web pages and Excel 2003 XML spreadsheets" to "Allow editing and Open in Protected View"
    the files are still blocked and the Trust Center list the file as Do not open, not the GPO setting of open in protected view.  I have verified via GPresults that the GPO applied successfully, rebooted the PC, etc.  The "Set Default File Block
    Behavior" is NOT overridden by individual file type settings.
    According to the "plan file block settings" technet article:
    The “Set default file block behavior” setting specifies how blocked files open (for example: does not open, opens in protected view, or opens in protected view but can be edited). If you enable this setting, the default file block behavior you specify applies
    to any file format that users block in the Trust Center UI. It also applies to a specific file format only if you both enable its file format setting (for more information about individual file format settings, see the tables in this article) and select the
    Open/Save blocked, use open policy option. Otherwise, if you configure an individual file format setting, it overrides the
    Set default file block behavior setting configuration for that file type.
    Second, even if I do change the set default file block behavior to open in protected view, I still cannot open XML spreadsheets.  The trust center says that the file format is set to open in protected view but when I attempt to open a file it behaves
    as if the setting was still set to block entirely.
    The only thing that works is setting it to "do not block" which is not where I'd like to go - I would for security reasons like these types of files to open in protected view but there doesn't seem to be any way to do this contrary to the Technet
    documentation.

    Hi,
    I had opened a case at Microsoft in 2012 about the «Open/Save Block, use open policy» parameter about HTM/HMTL files... Here is the answer I got from the support.
    Hope it will help
    Thank you for contacting Microsoft regarding your recent Office 2010 Hotfix request (SR 112022071246968) in reference to File Block settings on web pages. We have conducted a thorough investigation into this matter
    and while we recognize the impact the issue is having on your business, we cannot accept this Hotfix request because it is acting as designed.<u5:p></u5:p>
    Office will block any files that are explicitly set in the File Block UI by an Administrator when there is no built in validator.  The Office File Validation scans and validates certain kinds of files and will
    only display those applicable files in Protected View.  We could provide a safe experience in Protected View for HTM, but it wouldn't be a useful experience. Linked content of the web page is not available (images, stylesheets, javascript, etc), so the
    user would effectively see plain text. This is not the experience we want in Protected View, and it would encourage users to leave Protected View, putting their machine at risk. So HTM/HTML files are blocked.<u5:p></u5:p>
    <u5:p></u5:p>

  • Problems with SwingWorker and classes in my new job, ;), can you help me?

    Hi all, ;)
    First of all, sorry about my poor English.
    I have a problem with Swing and Threads, I hope you help me (because I'm in the firsts two weeks in my new job)
    I have two classes:
    Form1: Its a JPanel class with JProgressBar and JLabel inside.
    FormularioApplet: (the main) Its a JPanel class with a form1 inside.
    I have to download a file from a server and show the progress of the download in the JProgressBar. To make it I do this:
    In Form1 I make a Thread that update the progress bar and gets the fole from the server.
    In FormularioApplet (the main) I call to the method getDownloadedFile from Form1 to get the File.
    THE PROBLEM:
    The execution of FormularioApplet finishes before the Thread of Form1 (with download the file) download the file. Then, when I call in FormularioApplet the variable with the file an Exception: Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException is generated.
    First main begins his execution, then call to Form1 (a thread) then continues his execution and when the execution is finished ends the execution os Form1 and his thread.
    How can I do for main class call the function and the Thread download his file after main class assign the file of return method?
    How can I pass information froma class include an a main class. Form1 can't send to main (because main class made a Form1 f1 = new Form1()) any information from his end of the execution. I think if Form1 can say to main class that he finishes is job, then main class can gets the file.
    I put in bold the important lines.
    Note: My level of JAVA, you can see, is not elevated.
    THANKS A LOT
    Form1 class:
    package es.cambrabcn.signer.gui;
    import java.awt.HeadlessException;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.StringTokenizer;
    import java.util.Vector;
    import javax.swing.SwingUtilities;
    public class Form1 extends javax.swing.JPanel {
        //Variables relacionadas con la clase original DownloadProgressBar
        private InputStream file;
        private int totalCicles;
        private int totalFiles;
        private int currentProgress;
        private SwingWorker worker;
        private ByteArrayOutputStream byteArray;
        private boolean done;
        /** Creates new form prueba */
        public Form1() {
            initComponents();
            this.byteArray = new ByteArrayOutputStream();
            progressBar.setStringPainted(true);
            //this.totalFiles = totalFiles;
            currentProgress = 0;
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
        // <editor-fold defaultstate="collapsed" desc=" C�digo Generado ">                         
        private void initComponents() {
            label1 = new javax.swing.JLabel();
            progressBar = new javax.swing.JProgressBar();
            statusLabel = new javax.swing.JLabel();
            setBackground(new java.awt.Color(255, 255, 255));
            setMaximumSize(new java.awt.Dimension(300, 150));
            setMinimumSize(new java.awt.Dimension(300, 150));
            setPreferredSize(new java.awt.Dimension(300, 150));
            label1.setFont(new java.awt.Font("Arial", 1, 18));
            label1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            label1.setText("Barra de progreso");
            statusLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            statusLabel.setText("Cargando");
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
            this.setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap()
                    .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, statusLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, progressBar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, label1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE))
                    .addContainerGap())
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .addContainerGap()
                    .add(label1)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(statusLabel)
                    .addContainerGap(73, Short.MAX_VALUE))
        }// </editor-fold>                       
        // Declaraci�n de variables - no modificar                    
        private javax.swing.JLabel label1;
        private javax.swing.JProgressBar progressBar;
        private javax.swing.JLabel statusLabel;
        // Fin de declaraci�n de variables                  
        public byte[] getDownloadedFile(String documentToSign){
             //Variables locales
             byte puente[] = null;
             try{
                //Leemos el documento a firmar
                StringTokenizer st = new StringTokenizer(documentToSign, ";");
                Vector<URL> fileURL = new Vector<URL>();
                HttpSender sender = new HttpSender(null);
                //Introducimos la lista de URLs de archivos a bajar en el objeto Vector
                for(; st.hasMoreTokens(); fileURL.add(new URL(st.nextToken())));
                //Para cada URL descargaremos un archivo
                for(int i = 0; i < fileURL.size(); i++) {
                    file = sender.getMethod((URL)fileURL.get(i));
                    if(file == null) {
                        Thread.sleep(1000L);
                        throw new RuntimeException("Error descarregant el document a signar.");
                    System.out.println("Form1 Dentro de getDownloadFile, Antes de startDownload()");
                    //Fijamos el valor del n�mero de ciclos que se har�n seg�n el tama�o del fichero
                    this.totalCicles = sender.returnCurrentContentLength() / 1024;
                    this.progressBar.setMaximum(totalCicles);
                    //Modificamos el texto del JLabel seg�n el n�mero de fichero que estemos descargando
                    this.statusLabel.setText((new StringBuilder("Descarregant document ")).append(i + 1).append(" de ").append(fileURL.size()).toString());
                    statusLabel.setAlignmentX(0.5F);
                    *//Iniciamos la descarga del fichero, este m�todo llama internamente a un Thread*
                    *this.startDownload();*
                    *System.out.println("Form1 Dentro de getDownloadFile, Despu�s de startDownload()");*
                    *//if (pane.showProgressDialog() == -1) {*
                    *while (!this.isDone()){*
                        *System.out.println("No est� acabada la descarga");*
                        *if (this.isDone()){*
                            *System.out.println("Thread ACABADO --> Enviamos a puente el archivo");*
                            *puente = this.byteArray.toByteArray();*
                            *System.out.println("Form1 getDownloadFile() tama�o puente: " + puente.length);*
                        *else{*
                            *Thread.sleep(5000L);*
    *//                        throw new RuntimeException("Proc�s de desc�rrega del document a signar cancel�lat.");*
            catch (HeadlessException e) {
                    //javascript("onSignError", new String[] {
                    //(new StringBuilder("UI: ")).append(e.getMessage()).toString()});
            e.printStackTrace();
            catch (MalformedURLException e) {
                    //javascript("onSignError", new String[] {
                    //(new StringBuilder("CMS: ")).append(e.getMessage()).toString()});
            e.printStackTrace();
            catch (HttpSenderException e) {
                    //javascript("onSignError", new String[] {
                    //(new StringBuilder("CMS: ")).append(e.getMessage()).toString()});
            e.printStackTrace();
            catch (InterruptedException e) {
                    //javascript("onSignError", new String[] {
                    //(new StringBuilder("CMS: ")).append(e.getMessage()).toString()});
            e.printStackTrace();
            //System.out.println("Form1 getDownloadFile() tama�o puente: " + puente.length);
            return puente;
        public void updateStatus(final int i){
            Runnable doSetProgressBarValue = new Runnable() {
                public void run() {
                    progressBar.setValue(i);
            SwingUtilities.invokeLater(doSetProgressBarValue);
        public void startDownload() {
            System.out.println("Form1 Inicio startDownload()");
            System.out.println("Form1 Dentro de startDownload, antes de definir la subclase SwingWorker");
            System.out.println(done);
            worker = new SwingWorker() {
                public Object construct() {
                    System.out.println("Form1 Dentro de startDownload, dentro de construct(), Antes de entrar en doWork()");
                    return doWork();
                public void finished() {
                    System.out.println("Form1 Dentro de startDownload, dentro de finished(), Antes de asignar done = true");
                    System.out.println(done);
                    done = true;
                    System.out.println("Form1 Dentro de startDownload, dentro de finished(), Despu�s de asignar done = true");
                    System.out.println(done);
                    statusLabel.setText("Completado, tama�o del archivo: " + (byteArray.size() / 1024) + "KB");
            System.out.println("Form1 Dentro de startDownload, antes de worker.start()");
            worker.start();
            System.out.println("Form1 Dentro de startDownload, antes de salir de startDownload");
            System.out.println(done);
            System.out.println("Form1 Dentro de startDownload, despu�s de worker.start()");
         * M�todo doWork()
         * Este m�todo descarga por partes el archivo que es necesario descargar, adem�s de actualizar
         * la barra de carga del proceso de carga de la GUI.
        public Object doWork() {
            System.out.println("Form1 doWork() this.byteArray.size(): " + this.byteArray.size());
            try {
                byte buffer[] = new byte[1024];
                for(int c = 0; (c = this.file.read(buffer)) > 0;) {
                    this.currentProgress++;
                    updateStatus(this.currentProgress);
                    this.byteArray.write(buffer, 0, c);
                this.byteArray.flush();
                this.file.close();
                this.currentProgress = totalCicles;
                updateStatus(this.currentProgress);
            } catch(IOException e) {
                e.printStackTrace();
            System.out.println("Form1 doWork() FINAL this.byteArray.size(): " + this.byteArray.size());
            //done = true;
            System.out.println("AHORA DONE = TRUE");
            return "Done";
        public boolean isDone() {
            return this.done;
    FormularioApplet class (main)
    package es.cambrabcn.signer.gui;
    import java.awt.Color;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.net.URL;
    import java.security.Security;
    import java.util.StringTokenizer;
    import java.util.Vector;
    import javax.swing.SwingUtilities;
    import netscape.javascript.JSObject;
    import org.bouncycastle.jce.provider.BouncyCastleProvider;
    import sun.security.provider.Sun;
    import be.cardon.cryptoapi.provider.CryptoAPIProvider;
    public class FormularioApplet extends java.applet.Applet {
        //Variables globales
        int paso = 0;
        private static final String JS_ONLOAD = "onLoad";
        private static final String JS_ONLOADERROR = "onLoadError";
        private static final int SIGNATURE_PDF = 1;
        private static final int SIGNATURE_XML = 2;
        //private String signButtonValue;
        private int signatureType;
        private String documentToSign;
        private String pdfSignatureField;
        private Vector<String> outputFilename;
        private Color appletBackground = new Color(255, 255, 255);
        private Vector<byte[]> ftbsigned;
         * Initializes the applet FormularioApplet
        public void init(){
            try {
                SwingUtilities.invokeLater(new Runnable() {
                //SwingUtilities.invokeAndWait(new Runnable() {
                //java.awt.EventQueue.invokeAndWait(new Runnable() {
                    public void run() {
                        try{
                            readParameters();
                            initComponents();
                        catch(FileNotFoundException e){
                            javascript(JS_ONLOADERROR, new String[] {
                                (new StringBuilder("Init: ")).append(e.getMessage()).toString()});
                            e.printStackTrace();                       
                        catch(IOException e) {
                            javascript(JS_ONLOADERROR, new String[] {
                                (new StringBuilder("Init: ")).append(e.getMessage()).toString()});
                            e.printStackTrace();
            catch (Exception e) {
                javascript(JS_ONLOADERROR, new String[] {
                    (new StringBuilder("Init: ")).append(e.getMessage()).toString()});
                e.printStackTrace();
            javascript(JS_ONLOAD, null);
        /** This method is called from within the init() method to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
        // <editor-fold defaultstate="collapsed" desc=" C�digo Generado ">
        private void initComponents() {
            this.setSize(350, 450);
            appletPanel = new javax.swing.JPanel();
            jPanel1 = new javax.swing.JPanel();
            jTextField1 = new javax.swing.JLabel();
            jPanel2 = new javax.swing.JPanel();
            label = new javax.swing.JLabel();
            jPanel3 = new javax.swing.JPanel();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
            setLayout(new java.awt.BorderLayout());
            appletPanel.setBackground(new java.awt.Color(255, 255, 255));
            appletPanel.setMaximumSize(new java.awt.Dimension(350, 430));
            appletPanel.setMinimumSize(new java.awt.Dimension(350, 430));
            appletPanel.setPreferredSize(new java.awt.Dimension(350, 430));
            jPanel1.setBackground(new java.awt.Color(255, 255, 255));
            jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 102, 204)));
            jTextField1.setFont(new java.awt.Font("Arial", 1, 18));
            jTextField1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            jTextField1.setText("SIGNATURA ELECTRONICA");
            org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel1Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE)
                    .addContainerGap())
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel1Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE)
                    .addContainerGap())
            jPanel2.setBackground(new java.awt.Color(255, 255, 255));
            jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 102, 204)));
            label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
            label.setIcon(new javax.swing.ImageIcon("C:\\java\\workspaces\\cambrabcn\\firmasElectronicas\\logo.gif"));
            org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
            jPanel2.setLayout(jPanel2Layout);
            jPanel2Layout.setHorizontalGroup(
                jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(label, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE)
                    .addContainerGap())
            jPanel2Layout.setVerticalGroup(
                jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(label)
                    .addContainerGap(229, Short.MAX_VALUE))
            jPanel3.setBackground(new java.awt.Color(255, 255, 255));
            jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 102, 204)));
            //this.jButton1.setVisible(false);
            //this.jButton2.setVisible(false);
            jButton1.setText("Seg\u00fcent");
            jButton1.setAlignmentX(0.5F);
            //Cargamos el primer formulario en el JPanel2
            loadFirstForm();
            //Modificamos el texto del bot�n y el contador de pasos.
            //this.jButton1.setText("Siguiente");
            //this.jButton1.setVisible(true);
            //this.jButton2.setVisible(true);
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton1ActionPerformed(evt);
            jButton2.setText("Cancel\u00b7lar");
            jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton2ActionPerformed(evt);
            org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
            jPanel3.setLayout(jPanel3Layout);
            jPanel3Layout.setHorizontalGroup(
                jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 94, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 112, Short.MAX_VALUE)
                    .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 102, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap())
            jPanel3Layout.setVerticalGroup(
                jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
                    .addContainerGap()
                    .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(jButton2)
                        .add(jButton1))
                    .addContainerGap())
            org.jdesktop.layout.GroupLayout appletPanelLayout = new org.jdesktop.layout.GroupLayout(appletPanel);
            appletPanel.setLayout(appletPanelLayout);
            appletPanelLayout.setHorizontalGroup(
                appletPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, appletPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .add(appletPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addContainerGap())
            appletPanelLayout.setVerticalGroup(
                appletPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, appletPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                    .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap())
            add(appletPanel, java.awt.BorderLayout.CENTER);
        }// </editor-fold>
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            this.destroy();
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
            changeForms(this.paso);
        // Declaraci�n de variables - no modificar
        private javax.swing.JPanel appletPanel;
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JPanel jPanel2;
        private javax.swing.JPanel jPanel3;
        private javax.swing.JLabel jTextField1;
        private javax.swing.JLabel label;
        // Fin de declaraci�n de variables
         * M�todo readParameters
         * M�todo que inicializa los valores de los par�metros internos, recibidos por par�metro.
        private void readParameters() throws FileNotFoundException, IOException {
             ???????????????? deleted for the forum
            addSecurityProviders();
         * M�tode loadFirstForm
         * Aquest m�tode carrega a jPanel2 el formulari que informa sobre la c�rrega dels arxius
        private void loadFirstForm(){
            //Form1 f1 = new Form1(stream, i + 1, fileURL.size(), sender.returnCurrentContentLength(), appletBackground);
            //Form1 f1 = new Form1(fileURL.size(), sender.returnCurrentContentLength());
            Form1 f1 = new Form1();
            //Lo dimensionamos y posicionamos
            f1.setSize(310, 150);
            f1.setLocation(10, 110);
            //A�adimos el formulario al JPanel que lo contendr�
            this.jPanel2.add(f1);
            //Validem i repintem el JPanel
            jPanel2.validate();
            jPanel2.repaint();
            //Descarreguem l'arxiu a signar
            *System.out.println("FormularioApplet Dentro de loadFirstForm(), antes de llamar a getDownloadFile()");*
            *byte obj[] = f1.getDownloadedFile(this.documentToSign);*
            if (obj == null){
                System.out.println("Lo que devuelve f1.getDownloadedFile(this.documentToSign) es NULL");
            else{
                System.out.println("Lo que devuelve f1.getDownloadedFile(this.documentToSign) NO es NULL");
                System.out.println("obj: " + obj.length);
            this.ftbsigned.add(obj);
            System.out.println("FormularioApplet Dentro de loadFirstForm(), despu�s de llamar a getDownloadFile()");
            //Indicamos que el primer paso ya se ha efectuado
            this.paso++;
         * M�tode changeForms
         * Aquest m�tode carrega a jPanel2 un formulari concret segons el valor de la variable global "paso"
        private void changeForms(int paso){
            /*A cada paso se cargar� en el JPanel y formulario diferente
             * Paso previo: Se realiza en la inicializaci�n, carga el formulario, descarga el archivo y muestra la barra de carga.
             * Case 1: Se carga el formulario de selecci�n de tipo de firma.
             * Case 2: Se carga el formulario de datos de la persona que firma.
            this.paso = paso;
            switch(paso){
                case 1:
                    //Creamos un objeto de formulario (seleccion de tipo de firma)
                    Form2 f2 = new Form2();
                    //Lo dimensionamos y posicionamos
                    f2.setSize(310, 185);
                    f2.setLocation(10, 110);
                    //Quitamos el formulario 1 y a�adimos el formulario 2 al JPanel
                    this.jPanel2.remove(1);
                    this.jPanel2.add(f2);
                    //Validem i repintem el JPanel
                    jPanel2.validate();
                    jPanel2.repaint();
                    //Modificamos el contador de pasos.
                    this.paso++;
                    break;
                case 2:
                    //Creamos un objeto de formulario (seleccion de tipo de firma)
                    Form3 f3 = new Form3();
                    //Lo dimensionamos y posicionamos
                    f3.setSize(310, 175);
                    f3.setLocation(15, 130);
                    //Quitamos el formulario 1 y a�adimos el formulario 3 al JPanel
                    this.jPanel2.remove(1);
                    this.jPanel2.add(f3);
                    //Validem i repintem el JPanel
                    jPanel2.validate();
                    jPanel2.repaint();
                    //Modificamos el texto del bot�n y el contador de pasos.
                    this.jButton1.setText("Finalizar");
                    this.paso++;
                    break;
                default:
                    //Finalizar el Applet
                    //C�digo que se encargue de guardar el archivo en el disco duro del usuario
                    break;
        private void addSecurityProviders() throws FileNotFoundException, IOException {
            Security.addProvider(new CryptoAPIProvider());
            if (signatureType == SIGNATURE_PDF) {
                Security.addProvider(new BouncyCastleProvider());
            else {
                Security.addProvider(new Sun());
        private File createOutputFile(String filename, int index) {
            return new File((String)outputFilename.get(index));
        protected Object javascript(String function, String args[]) throws RuntimeException {
            //Remove
            if (true) return null;
            try {
                Vector<String> list = new Vector<String>();
                if(args != null) {
                    for(int i = 0; i < args.length; i++) {
                        list.addElement(args);
    if(list.size() > 0) {
    Object objs[] = new Object[list.size()];
    list.copyInto(objs);
    return JSObject.getWindow(this).call(function, objs);
    } catch(UnsatisfiedLinkError e) {
    e.printStackTrace();
    throw new RuntimeException((new StringBuilder()).append(e).append("\nFunci�: ").append(function).toString());
    } catch(Throwable e) {
    e.printStackTrace();
    throw new RuntimeException((new StringBuilder()).append(e).append("\nFunci�: ").append(function).toString());
    return JSObject.getWindow(this).call(function, new Object[0]);
    Edited by: Kefalegereta on Oct 31, 2007 3:54 AM
    Edited by: Kefalegereta on Oct 31, 2007 4:00 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

    Look at iOS Troubleshooting Wi-Fi networks and connections  http://support.apple.com/kb/TS1398
    iPad: Issues connecting to Wi-Fi networks  http://support.apple.com/kb/ts3304
    iOS: Recommended settings for Wi-Fi routers and access points  http://support.apple.com/kb/HT4199
    Additional things to try.
    Try this first. Turn Off your iPad. Then turn Off (disconnect power cord) the wireless router & then back On. Now boot your iPad. Hopefully it will see the WiFi.
    Go to Settings>Wi-Fi and turn Off. Then while at Settings>Wi-Fi, turn back On and chose a Network.
    Change the channel on your wireless router. Instructions at http://macintoshhowto.com/advanced/how-to-get-a-good-range-on-your-wireless-netw ork.html
    Another thing to try - Go into your router security settings and change from WEP to WPA with AES.
    How to Quickly Fix iPad 3 Wi-Fi Reception Problems
    http://osxdaily.com/2012/03/21/fix-new-ipad-3-wi-fi-reception-problems/
    If none of the above suggestions work, look at this link.
    iPad Wi-Fi Problems: Comprehensive List of Fixes
    http://appletoolbox.com/2010/04/ipad-wi-fi-problems-comprehensive-list-of-fixes/
    Fix iPad Wifi Connection and Signal Issues  http://www.youtube.com/watch?v=uwWtIG5jUxE
    ~~~~~~~~~~~~~~~
    If any of the above solutions work, please post back what solved your problem. It will help others with the same problem.
     Cheers, Tom

  • A problem with struts -  DispatchAction class

    Hi,
    I am facing a problem with DispatchAction class in struts 1.1.
    Here is my senario:
    I have a two classes that extend DispatchAction - classA and classB.
    In classA, I have a start method. In classB, I have two methods - display and submit.
    When my application starts, my index.jsp does a logic:forward to the struts-config.xml file.
    e.g.:
    index.jsp<logic:forward name="startApp"/>
    struts-config.xml<form-beans>
         <form-bean name="testFormBean" type="package.testFormBean">
         </form-bean>
    </form-beans>
    <global-forwards>
         <forward name="startApp" path="/startApp.do?method=start"/>
    </global-forwards>
    <action-mappings>
         <action name="testFormBean"
    path="/startApp"
    parameter="method"
    validate="false"
    scope="request"
    type="package.StartAppActions">
         <forward name="successOneUser" path="/runSearch.do?method=display"/>
         </action>
         <action name="testBean"
    path="/runSearch"
    parameter="method"
    validate="false"
    scope="request"
    type="package.SearchActions">
                   <forward name="success" path="/html/jsps/success.jsp"/>
         </action>
    </action-mappings>
    when my application starts, the control goes to the index.jsp and then because of the logic forward goes to the start method of the /startApp action(i.e. the StartAppActions class). I return a ActionForward element with the value of "successOneUser".
    Uptill this point everything works fine.
    But now it should go the /runSearch element (i.e. SearchActions class) and the display method of it. But it is not going there. The error I am getting is action[runSearch] does not have a method named "start".
    I checked the value for the method parameter using the RAD/WSAD debugger, the value of parameter is "method" is still "start".
    I do not understand why it is not overiding the value of parameter "method" with display even though I am doing a
    <forward name="successOneUser" path="/runSearch.do?method=display"/> in the /startApp element, which should send the control to the display method of the [runSearch] element (i.e. in the startActions class).
    Can anyone tell me what the problem is ?
    Thanks in advance.
    kaushal

    Try this:
    Runtime.getRuntime().exec("your_batch_file.bat");
    where your_batch_file is:
    SET CLASSPATH=....(place all needed classes here)
    javac.exe filename
    must work,but there is some limitation...
    you must think to solve this problems.
    i hope that will help,
    Marius

Maybe you are looking for

  • Adding network switch to external WAN to increase number of ports available

    This may be a stupid question but this has kinda been landed on me so I'll ask anyway. We have a Cisco router with ethernet connection to our provider's NTE.  They provide us with one ethernet port on the NTE which we connect to the WAN port on our C

  • Flash C5 pro used to create feature length animated films

    First, I have Adobe Production Suite CS5 on it's way and have been loooking for information on using several of the programs like Flash, Photoshop, Illustrator, After Effects and Premiere. How is Flash C5 pro used to create feature length animated fi

  • RAID 5 Support

    Hey, I purchased Z820 Workstation. Does it has a controller that supports RAID 5, an on board controller? or Do I need to add a separate controller? The system was purchased with 5  SATA disks. 5 X 1TB each Thanks in advance

  • Movie clip not visible

    I the code below I want to add the following array of movie clips: activeLevelofTilesArray After I added the code below the swf plays with the following error: ReferenceError: Error #1069: Property [object S],[object T],...etc. not found on builtin.a

  • Fullscreen picture viewer?

    Hi, loving my Z tab, my only question is, is there a setting to allow me to view pictures in full screen mode? Currently there is a bar at the bottom with the home etc buttons. Seems a bit crazy to have this size tablet and then have 10mm of the bott