8 Replies Latest reply on Jan 22, 2009 8:15 AM by 807588

    constructor issue

    807588
      Hi all,

      Our project is having an issue here and we're not sure how to go about rectifying this error...any help or suggestions will be greatly appreciated!!!

      ***we encounter an error in this line "_public CommPortOpen(Frame F)_" which we are supposedly to return F variables but it doesn't, instead the program can't be executed and run properly....question is do we need to change the variable "_Frame F_" to "_null_" or do we need to reconstruct this line to another?

      thanks,

      Euphe

      /* Constructor */
      public CommPortOpen(Frame F)
      throws IOException, NoSuchPortException, PortInUseException,
      UnsupportedCommOperationException {
      // Use the PortChooser from before. Pop up the JDialog.
      PortChooser chooser = new PortChooser(null);
      String portName = null;
      do {
      chooser.setVisible(true);
      // Dialog done. Get the port name.
      portName = chooser.getSelectedName();
      if (portName == null)
      System.out.println("No port selected. Try again.\n");
      } while (portName == null);
      // Get the CommPortIdentifier.
      thePortID = chooser.getSelectedIdentifier();
      // Now actually open the port.
      // This form of openPort takes an Application Name and a timeout.
      //
      System.out.println("Trying to open " + thePortID.getName() + "...");
      switch (thePortID.getPortType()) {
      case CommPortIdentifier.PORT_SERIAL:
      thePort = thePortID.open("DarwinSys DataComm",
      TIMEOUTSECONDS * 1000);
      SerialPort myPort = (SerialPort) thePort;

      // set up the serial port
      myPort.setSerialPortParams(BAUD, SerialPort.DATABITS_8,
      SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
      break;
      case CommPortIdentifier.PORT_PARALLEL:
      thePort = thePortID.open("DarwinSys Printing",
      TIMEOUTSECONDS * 1000);
      ParallelPort pPort = (ParallelPort)thePort;
      // Tell API to pick "best available mode" - can fail!
      // myPort.setMode(ParallelPort.LPT_MODE_ANY);
      // Print what the mode is
      int mode = pPort.getMode();
      switch (mode) {
      case ParallelPort.LPT_MODE_ECP:
      System.out.println("Mode is: ECP");
      break;
      case ParallelPort.LPT_MODE_EPP:
      System.out.println("Mode is: EPP");
      break;
      case ParallelPort.LPT_MODE_NIBBLE:
      System.out.println("Mode is: Nibble Mode.");
      break;
      case ParallelPort.LPT_MODE_PS2:
      System.out.println("Mode is: Byte mode.");
      break;
      case ParallelPort.LPT_MODE_SPP:
      System.out.println("Mode is: Compatibility mode.");
      break;
      // ParallelPort.LPT_MODE_ANY is a "set only" mode;
      // tells the API to pick "best mode"; will report the
      // actual mode it selected.
      default:
      throw new IllegalStateException
      ("Parallel mode " + mode + " invalid.");
      }
      break;
      default:// Neither parallel nor serial??
      throw new IllegalStateException("Unknown port type " + thePortID);
      }
      // Get the input and output streams
      // Printers can be write-only
      try {
      is = new DataInputStream(thePort.getInputStream());
      } catch (IOException e) {
      System.err.println("Can't open input stream: write-only");
      is = null;
      }
      os = new PrintStream(thePort.getOutputStream(), true);
      }
        • 1. Re: constructor issue
          807588
          please post the exact error message
          • 2. Re: constructor issue
            darrylburke
            Just another cross poster
            [http://www.java-forums.org/advanced-java/15194-constructor-issue.html]
            [http://www.coderanch.com/t/427419/Java-General-intermediate/constructor-issue]

            db
            • 3. Re: constructor issue
              807588
              Hi,
              This's the exact error message...hope it helps.

              init:

              deps-jar:

              Compiling 1 source file to C:\Documents and Settings\Administrator\Serial Port Monitor\build\classes

              C:\Documents and Settings\Administrator\Serial Port Monitor\src\serialportmonitor\Main.java:36: invalid method declaration; return type required

              public CommPortOpen(Frame F)

              1 error

              BUILD FAILED (total time: 0 seconds)
              • 4. Re: constructor issue
                807588
                Hi,

                Apology as I'm still new to the IT etiquette around here, I'll take note and keep my post to only one forum at a time in future.

                Thanks
                • 5. Re: constructor issue
                  807588
                  Hi,

                  Apology as I'm still new to the IT etiquette around here, I'll take note and keep my post to only one forum at a time in future.

                  Thanks
                  • 6. Re: constructor issue
                    807588
                    kuaimun wrote:

                    C:\Documents and Settings\Administrator\Serial Port Monitor\src\serialportmonitor\Main.java:36: invalid method declaration; return type required

                    public CommPortOpen(Frame F)

                    1 error

                    BUILD FAILED (total time: 0 seconds)
                    From the JLS , The SimpleTypeName in the ConstructorDeclarator must be the simple name of the class that contains the constructor declaration; otherwise a compile-time error occurs.
                    • 7. Re: constructor issue
                      807588
                      Hi,

                      So am I right to say that the constructor name that I've given; as in this case "CommPortOpen" is invalid and that the constructor is not able to read my data so i must change to the one that I've declared earlier on in the global variables?

                      Thanks.
                      • 8. Re: constructor issue
                        807588
                        the constructor and the classname should be the same.
                        The constructor of this class
                        public class Foo
                        {
                        }
                        should be
                        Foo()
                        {
                        }
                        Note that it is case-sensitive.
                        if your class is named CommPortOpen , then your constructor should be
                        public CommPortOpen(Frame F)
                        . But then as the error indicates , the names of your class and constructor dont match.