Don't understand why WSDL isn't valid

In Workshop 9.2, I'm developing an annotation-based web service. I imported my schemas and generated the xmlbeans, and after setting my input and output parameters in the service class, I tried to generate the WSDL from the service. For some reason, the WSDL is not valid, and I don't understand why. I'm sure it's a namespace issue, but I don't see it.
The enclosed WSDL is somewhat paraphrased from the generated WSDL.
On line 76 (marked with a comment), there is the first of several errors. It says:
"The input element is referencing an undefined message 'overrideRequest'. Check that the message name and namespace are correct and that the message has been defined."
Here is the WSDL:
<?xml version='1.0' encoding='UTF-8'?>
<s0:definitions name="SampleServiceDefinitions"
targetNamespace="http://schemas.wamu.com/Sample.wsdl"
xmlns=""
xmlns:s0="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://schemas.wamu.com/Sample.wsdl"
xmlns:ratings="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:questions="http://schemas.wamu.com/2006/07/QuestionsRequest"
xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/">
<s0:types>
<xs:schema targetNamespace="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:ratings="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="loanSampleRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:loanProperties"/>
</xs:sequence>
<xs:attribute name="modelVersion" type="xs:integer" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="loanSampleResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:loanProperties"/>
<xs:element ref="ratings:messages"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loanProperties">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ratings:property"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:key"/>
<xs:element ref="ratings:value"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="ratings:message"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="message">
<xs:complexType mixed="true">
<xs:attribute name="level" type="xs:string"/>
<xs:attribute name="fieldName" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
</s0:types>
<s0:message name="overrideRequest">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:message name="overrideRequestResponse">
<s0:part element="ratings:loanSampleResponse" name="parameters"/>
</s0:message>
<s0:message name="ratingsRequest">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:message name="ratingsRequestResponse">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:portType name="Sample">
<s0:operation name="overrideRequest">
<s0:input message="tns:overrideRequest"/> <!-- 76 -->
<s0:output message="overrideRequestResponse"/>
</s0:operation>
<s0:operation name="ratingsRequest" parameterOrder="parameters">
<s0:input message="ratingsRequest"/>
<s0:output message="ratingsRequestResponse"/>
</s0:operation>
</s0:portType>
<s0:binding name="SampleServiceSoapBinding" type="tns:Sample">
<s2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<s0:operation name="overrideRequest">
<s2:operation soapAction="" style="document"/>
<s0:input>
<s2:body parts="parameters" use="literal"/>
</s0:input>
<s0:output>
<s2:body parts="parameters" use="literal"/>
</s0:output>
</s0:operation>
<s0:operation name="ratingsRequest">
<s2:operation soapAction="" style="document"/>
<s0:input>
<s2:body parts="parameters" use="literal"/>
</s0:input>
<s0:output>
<s2:body parts="parameters" use="literal"/>
</s0:output>
</s0:operation>
</s0:binding>
<s0:service name="SampleService">
<s0:port binding="tns:SampleServiceSoapBinding" name="SampleSoapPort">
<s2:address location="http://localhost:7001/Sample/Sample"/>
</s0:port>
</s0:service>
</s0:definitions>
--------------------

After I made these changes and re-validated, I get a dialog that says "The WSDL file is valid however warnings have been issued. See the Problems view for a list of the validation warnings", and I see the following in the Problems list:
IWAE0053E An internal error has occurred running validation on project:RiskRatingContainer]:RiskRatingContainer, check the log file for details
In in my WSDL editor, the lines in question still have a red circle with a white "x" in the left margin, and the tooltip still reports the same errors as before.
In the "Error Log" view, I see the following:
*** ERROR ***: Thu Feb 22 12:10:09 PST 2007 org.eclipse.wst.validation.internal.core.ValidationException: IWAE0053E An internal error has occurred running validation on project:RiskRatingContainer]:RiskRatingContainer, check the log file for details
Just in case, I'll include my current WSDL again here.
<?xml version='1.0' encoding='UTF-8'?>
<s0:definitions name="SampleServiceDefinitions"
targetNamespace="http://schemas.wamu.com/Sample.wsdl"
xmlns=""
xmlns:s0="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://schemas.wamu.com/Sample.wsdl"
xmlns:ratings="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:questions="http://schemas.wamu.com/2006/07/QuestionsRequest"
xmlns:s2="http://schemas.xmlsoap.org/wsdl/soap/">
<s0:types>
<xs:schema targetNamespace="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:ratings="http://schemas.wamu.com/2006/07/LoanSampleRequest"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="loanSampleRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:loanProperties"/>
</xs:sequence>
<xs:attribute name="modelVersion" type="xs:integer" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="loanSampleResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:loanProperties"/>
<xs:element ref="ratings:messages"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loanProperties">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ratings:property"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element ref="ratings:key"/>
<xs:element ref="ratings:value"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="ratings:message"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="message">
<xs:complexType mixed="true">
<xs:attribute name="level" type="xs:string"/>
<xs:attribute name="fieldName" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
</s0:types>
<s0:message name="overrideRequest">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:message name="overrideRequestResponse">
<s0:part element="ratings:loanSampleResponse" name="parameters"/>
</s0:message>
<s0:message name="ratingsRequest">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:message name="ratingsRequestResponse">
<s0:part element="ratings:loanSampleRequest" name="parameters"/>
</s0:message>
<s0:portType name="Sample">
<s0:operation name="overrideRequest">
<s0:input message="tns:overrideRequest"/> <!-- 76 -->
<s0:output message="tns:overrideRequestResponse"/>
</s0:operation>
<s0:operation name="ratingsRequest" parameterOrder="parameters">
<s0:input message="tns:ratingsRequest"/>
<s0:output message="tns:ratingsRequestResponse"/>
</s0:operation>
</s0:portType>
<s0:binding name="SampleServiceSoapBinding" type="tns:Sample">
<s2:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<s0:operation name="overrideRequest">
<s2:operation soapAction="" style="document"/>
<s0:input>
<s2:body parts="parameters" use="literal"/>
</s0:input>
<s0:output>
<s2:body parts="parameters" use="literal"/>
</s0:output>
</s0:operation>
<s0:operation name="ratingsRequest">
<s2:operation soapAction="" style="document"/>
<s0:input>
<s2:body parts="parameters" use="literal"/>
</s0:input>
<s0:output>
<s2:body parts="parameters" use="literal"/>
</s0:output>
</s0:operation>
</s0:binding>
<s0:service name="SampleService">
<s0:port binding="tns:SampleServiceSoapBinding" name="SampleSoapPort">
<s2:address location="http://localhost:7001/Sample/Sample"/>
</s0:port>
</s0:service>
</s0:definitions>
---------------------------

Similar Messages

  • I don't understand why recently with the new "pages" my computer stops responding. When I go to fix some grammar all of a sudden the little colored circle begins to appear and won't go away I restart my computer.

    I don't understand why recently with the new "pages" my computer stops responding. When I go to fix some grammar all of a sudden the little colored circle begins to appear and won't go away I restart my computer.

    If you have more than one user account, these instructions must be carried out as an administrator.
    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
    Step 1
    Make sure the title of the Console window is All Messages. If it isn't, select All Messages from the SYSTEM LOG QUERIES menu on the left. If you don't see that menu, select
    View ▹ Show Log List
    from the menu bar.
    Enter "BOOT_TIME" (without the quotes) in the search box. Note the timestamps of those log messages, which refer to the times when the system was booted. Now clear the search box and scroll back in the log to the last boot time after  you had the problem. Select the messages logged before the boot, while the system was unresponsive or was failing to shut down. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message (command-V). Please include the BOOT_TIME message at the end of the log extract.
    If there are runs of repeated messages, post only one example of each. Don’t post many repetitions of the same message.
    When posting a log extract, be selective. In most cases, a few dozen lines are more than enough.
    Please do not indiscriminately dump thousands of lines from the log into this discussion.
    Important: Some private information, such as your name, may appear in the log. Anonymize before posting.
    Step 2
    Still in Console, look under System Diagnostic Reports for crash or panic logs, and post the entire contents of the most recent one, if any. In the interest of privacy, I suggest you edit out the “Anonymous UUID,” a long string of letters, numbers, and dashes in the header of the report, if present (it may not be.) Please don’t post any other kind of report — it will be very long and not helpful.

  • I am new to Final Cut Express and don't understand why I am unable to drag transitions into Canvas? Something wrong in my setup? It's not the overlays they are "on" so can anyone advise me please?

    I am new to Final Cut Express and don't understand why I am unable to drag transitions into Canvas? Something wrong in my setup? It's not the overlays they are "on" so can anyone advise me please, by the way the "L" doesn't appear in the bottom left hand corner either? and by the way how can I get rid of that irritating Blue badge saying "AutoFill your contact details" all mine are in "address book" already!

    You can't drag a transition into the canvas. If you're dragginmg a transition from the effects tab you drag it between the edit point of two clips in the timeline.
    Make sure show edit overlays is turned on in the Canvas view popup.

  • Why is this an error???  I don't understand why it is... Help Please

    Hi,
    Ok, I'll preface this by saying there's a lotta code pasted in here but it really quite an easy question, I just need to post all the code so you understand where what came from.
    Now.............the question I'm trying to do is to create an applet that has 2 buttons -- each button when clicked opens an application (one is a simple calculator, the other a Mortgage calculation app). When you click one of the buttons (calc or mortgage), that app opens infront of the 2 button menu so its in "focus". The button on the 2 button menu then switches to a "hide app X" button (ie: "Mortgage", changes to "Hide Mortgage"). Thus if you click the hide button, the app that was opened is hidden, and then that "hide" button switches back to the original "app X" button. Pretty simple.
    Now, I have from my text book an example that does exactly this, with the simple calculator already in it, and with another app (a traffic light thing) where the Mortgage should be in my final product. I also already have the Mortgage applet I need to insert from another book example in place of that Traffic Light portion.
    Now, common sense would dictate that I should be able to just copy my code for the Mortgage applet into the example that has the 2 button menu structure, and overwrite the code I want to get rid of (the traffic light) with the mortgage code & rename the menu buttons. Right?? A simple switch of one thing for another... but therein lies my problem.
    I copied all the Mortgage code in correctly over the traffic lights, switched the button names, tried to compile it but I get one error....
    Exercise12_17.java:52: cannot resolve symbol
    symbol  : method pack ()
    location: class MortgageApplet
            mortgageAppletFrame.pack();I don't understand why..... mortgageAppletFrame.pack(); was a simple rewrite from lightsFrame.pack(); like every other line...... it should work. I've gone over it for 2 days......... Anyone know why it comes up as an error???
    Below, in order going down is (1)my code with the 1 error I can't solve, (2)the original menu example I tried to edit, and (3)the Mortgage app code...........
    Does anyone know what my error is?? Help or a hint would be greatly appreciated........ Thanks.
    My erroring app.......
    // Exercise12_17.java: Create multiple windows
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.TitledBorder;
    public class Exercise12_17 extends JFrame implements ActionListener {
      // Declare and create a frame: an instance of MenuDemo
      MenuDemo calcFrame = new MenuDemo();
      // Declare and create a frame: an instance of RadioButtonDemo
      MortgageApplet mortgageAppletFrame = new MortgageApplet();
      // Declare two buttons for displaying frames
      private JButton jbtCalc;
      private JButton jbtMortgage;
      public static void main(String[] args) {
        Exercise12_17 frame = new Exercise12_17();
        frame.setSize( 400, 70 );
        frame.setTitle("Exercise 11.8: Multiple Windows Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
      public Exercise12_17() {
        // Add buttons to the main frame
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(jbtCalc = new JButton("Simple Calculator"));
         getContentPane().add(jbtMortgage = new JButton("Mortgage"));
        // Register the main frame as listener for the buttons
        jbtCalc.addActionListener(this);
         jbtMortgage.addActionListener(this);
      public void actionPerformed(ActionEvent e) {
        String arg = e.getActionCommand();
        if (e.getSource() instanceof JButton)
          if ("Simple Calculator".equals(arg)) {
            //show the MenuDemo frame
            jbtCalc.setText("Hide Simple Calculator");
            calcFrame.pack();
            calcFrame.setVisible(true);
          else if ("Hide Simple Calculator".equals(arg)) {
            calcFrame.setVisible(false);
            jbtCalc.setText("Simple Calculator");
          else if ("Mortgage".equals(arg)) {
            //show the CheckboxGroup frame
            mortgageAppletFrame.pack();
            jbtMortgage.setText("Hide Mortgage");
            mortgageAppletFrame.setVisible(true);
          else if ("Hide Mortgage".equals(arg)) {
            mortgageAppletFrame.setVisible(false);
            jbtMortgage.setText("Mortgage");
      class MortgageApplet extends JApplet
      implements ActionListener {
      // Declare and create text fields for interest rate
      // year, loan amount, monthly payment, and total payment
      private JTextField jtfAnnualInterestRate = new JTextField();
      private JTextField jtfNumOfYears = new JTextField();
      private JTextField jtfLoanAmount = new JTextField();
      private JTextField jtfMonthlyPayment = new JTextField();
      private JTextField jtfTotalPayment = new JTextField();
      // Declare and create a Compute Mortgage button
      private JButton jbtComputeMortgage = new JButton("Compute Mortgage");
      /** Initialize user interface */
      public void init() {
        // Set properties on the text fields
        jtfMonthlyPayment.setEditable(false);
        jtfTotalPayment.setEditable(false);
        // Right align text fields
        jtfAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);
        jtfNumOfYears.setHorizontalAlignment(JTextField.RIGHT);
        jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);
        jtfMonthlyPayment.setHorizontalAlignment(JTextField.RIGHT);
        jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);
        // Panel p1 to hold labels and text fields
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(5, 2));
        p1.add(new Label("Annual Interest Rate"));
        p1.add(jtfAnnualInterestRate);
        p1.add(new Label("Number of Years"));
        p1.add(jtfNumOfYears);
        p1.add(new Label("Loan Amount"));
        p1.add(jtfLoanAmount);
        p1.add(new Label("Monthly Payment"));
        p1.add(jtfMonthlyPayment);
        p1.add(new Label("Total Payment"));
        p1.add(jtfTotalPayment);
        p1.setBorder(new
          TitledBorder("Enter interest rate, year and loan amount"));
        // Panel p2 to hold the button
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
        p2.add(jbtComputeMortgage);
        // Add the components to the applet
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listener
        jbtComputeMortgage.addActionListener(this);
      /** Handle the "Compute Mortgage" button */
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbtComputeMortgage) {
          // Get values from text fields
          double interest = (Double.valueOf(
            jtfAnnualInterestRate.getText())).doubleValue();
          int year =
            (Integer.valueOf(jtfNumOfYears.getText())).intValue();
          double loan =
            (Double.valueOf(jtfLoanAmount.getText())).doubleValue();
          // Create a mortgage object
          Mortgage m = new Mortgage(interest, year, loan);
          // Display monthly payment and total payment
          jtfMonthlyPayment.setText(String.valueOf(m.monthlyPayment()));
          jtfTotalPayment.setText(String.valueOf(m.totalPayment()));
    class MenuDemo extends JFrame implements ActionListener {
      // Text fields for Number 1, Number 2, and Result
      private JTextField jtfNum1, jtfNum2, jtfResult;
      // Buttons "Add", "Subtract", "Multiply" and "Divide"
      private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;
      // Menu items "Add", "Subtract", "Multiply","Divide" and "Close"
      private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;
      /** Main method */
      public static void main(String[] args) {
        MenuDemo frame = new MenuDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
      /** Default constructor */
      public MenuDemo() {
        setTitle("Menu Demo");
        // Create menu bar
        JMenuBar jmb = new JMenuBar();
        // Set menu bar to the frame
        setJMenuBar(jmb);
        // Add menu "Operation" to menu bar
        JMenu operationMenu = new JMenu("Operation");
        operationMenu.setMnemonic('O');
        jmb.add(operationMenu);
        // Add menu "Exit" in menu bar
        JMenu exitMenu = new JMenu("Exit");
        exitMenu.setMnemonic('E');
        jmb.add(exitMenu);
        // Add menu items with mnemonics to menu "Operation"
        operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));
        operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));
        operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));
        operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));
        exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));
        // Set keyboard accelerators
        jmiAdd.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
        jmiSub.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
        jmiMul.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));
        jmiDiv.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
        // Panel p1 to hold text fields and labels
        JPanel p1 = new JPanel();
        p1.setLayout(new FlowLayout());
        p1.add(new JLabel("Number 1"));
        p1.add(jtfNum1 = new JTextField(3));
        p1.add(new JLabel("Number 2"));
        p1.add(jtfNum2 = new JTextField(3));
        p1.add(new JLabel("Result"));
        p1.add(jtfResult = new JTextField(4));
        jtfResult.setEditable(false);
        // Panel p2 to hold buttons
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jbtAdd = new JButton("Add"));
        p2.add(jbtSub = new JButton("Subtract"));
        p2.add(jbtMul = new JButton("Multiply"));
        p2.add(jbtDiv = new JButton("Divide"));
        // Add panels to the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners
        jbtAdd.addActionListener(this);
        jbtSub.addActionListener(this);
        jbtMul.addActionListener(this);
        jbtDiv.addActionListener(this);
        jmiAdd.addActionListener(this);
        jmiSub.addActionListener(this);
        jmiMul.addActionListener(this);
        jmiDiv.addActionListener(this);
        jmiClose.addActionListener(this);
      /** Handle ActionEvent from buttons and menu items */
      public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
        // Handle button events
        if (e.getSource() instanceof JButton) {
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
        else if (e.getSource() instanceof JMenuItem) {
          // Handle menu item events
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
          else if ("Close".equals(actionCommand))
            System.exit(0);
      /** Calculate and show the result in jtfResult */
      private void calculate(char operator) {
        // Obtain Number 1 and Number 2
        int num1 = (Integer.parseInt(jtfNum1.getText().trim()));
        int num2 = (Integer.parseInt(jtfNum2.getText().trim()));
        int result = 0;
        // Perform selected operation
        switch (operator) {
          case '+': result = num1 + num2;
                    break;
          case '-': result = num1 - num2;
                    break;
          case '*': result = num1 * num2;
                    break;
          case '/': result = num1 / num2;
        // Set result in jtfResult
        jtfResult.setText(String.valueOf(result));
    Original 2 button menu example....
    // Exercise11_8.java: Create multiple windows
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Exercise11_8 extends JFrame implements ActionListener {
      // Declare and create a frame: an instance of MenuDemo
      MenuDemo calcFrame = new MenuDemo();
      // Declare and create a frame: an instance of RadioButtonDemo
      RadioButtonDemo lightsFrame = new RadioButtonDemo();
      // Declare two buttons for displaying frames
      private JButton jbtCalc;
      private JButton jbtLights;
      public static void main(String[] args) {
        Exercise11_8 frame = new Exercise11_8();
        frame.setSize( 400, 70 );
        frame.setTitle("Exercise 11.8: Multiple Windows Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
      public Exercise11_8() {
        // Add buttons to the main frame
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(jbtCalc = new JButton("Simple Calculator"));
        getContentPane().add(jbtLights = new JButton("Traffic Lights"));
        // Register the main frame as listener for the buttons
        jbtCalc.addActionListener(this);
        jbtLights.addActionListener(this);
      public void actionPerformed(ActionEvent e) {
        String arg = e.getActionCommand();
        if (e.getSource() instanceof JButton)
          if ("Simple Calculator".equals(arg)) {
            //show the MenuDemo frame
            jbtCalc.setText("Hide Simple Calculator");
            calcFrame.pack();
            calcFrame.setVisible(true);
          else if ("Hide Simple Calculator".equals(arg)) {
            calcFrame.setVisible(false);
            jbtCalc.setText("Simple Calculator");
          else if ("Traffic Lights".equals(arg)) {
            //show the CheckboxGroup frame
            lightsFrame.pack();
            jbtLights.setText("Hide Traffic Lights");
            lightsFrame.setVisible(true);
          else if ("Hide Traffic Lights".equals(arg)) {
            lightsFrame.setVisible(false);
            jbtLights.setText("Traffic Lights");
         class RadioButtonDemo extends JFrame
      implements ItemListener {
      // Declare radio buttons
      private JRadioButton jrbRed, jrbYellow, jrbGreen;
      // Declare a radio button group
      private ButtonGroup btg = new ButtonGroup();
      // Declare a traffic light display panel
      private Light light;
      /** Main method */
      public static void main(String[] args) {
        RadioButtonDemo frame = new RadioButtonDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(250, 170);
        frame.setVisible(true);
      /** Default constructor */
      public RadioButtonDemo() {
        setTitle("RadioButton Demo");
        // Add traffic light panel to panel p1
        JPanel p1 = new JPanel();
        p1.setSize(200, 200);
        p1.setLayout(new FlowLayout(FlowLayout.CENTER));
        light = new Light();
        light.setSize(40, 90);
        p1.add(light);
        // Put the radio button in Panel p2
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jrbRed = new JRadioButton("Red", true));
        p2.add(jrbYellow = new JRadioButton("Yellow", false));
        p2.add(jrbGreen = new JRadioButton("Green", false));
        // Set keyboard mnemonics
        jrbRed.setMnemonic('R');
        jrbYellow.setMnemonic('Y');
        jrbGreen.setMnemonic('G');
        // Group radio buttons
        btg.add(jrbRed);
        btg.add(jrbYellow);
        btg.add(jrbGreen);
        // Place p1 and p2 in the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners for check boxes
        jrbRed.addItemListener(this);
        jrbYellow.addItemListener(this);
        jrbGreen.addItemListener(this);
      /** Handle checkbox events */
      public void itemStateChanged(ItemEvent e) {
        if (jrbRed.isSelected())
          light.turnOnRed(); // Set red light
        if (jrbYellow.isSelected())
          light.turnOnYellow(); // Set yellow light
        if (jrbGreen.isSelected())
          light.turnOnGreen(); // Set green light
    // Three traffic lights shown in a panel
    class Light extends JPanel {
      private boolean red;
      private boolean yellow;
      private boolean green;
      /** Default constructor */
      public Light() {
        turnOnGreen();
      /** Set red light on */
      public void turnOnRed() {
        red = true;
        yellow = false;
        green = false;
        repaint();
      /** Set yellow light on */
      public void turnOnYellow() {
        red = false;
        yellow = true;
        green = false;
        repaint();
      /** Set green light on */
      public void turnOnGreen() {
        red = false;
        yellow = false;
        green = true;
        repaint();
      /** Display lights */
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (red) {
          g.setColor(Color.red);
          g.fillOval(10, 10, 20, 20);
          g.setColor(Color.black);
          g.drawOval(10, 35, 20, 20);
          g.drawOval(10, 60, 20, 20);
          g.drawRect(5, 5, 30, 80);
        else if (yellow) {
          g.setColor(Color.yellow);
          g.fillOval(10, 35, 20, 20);
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 60, 20, 20);
        else if (green) {
          g.setColor(Color.green);
          g.fillOval(10, 60, 20, 20);
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 35, 20, 20);
        else {
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 35, 20, 20);
          g.drawOval(10, 60, 20, 20);
      /** Set preferred size */
      public Dimension getPreferredSize() {
        return new Dimension(40, 90);
    class MenuDemo extends JFrame implements ActionListener {
      // Text fields for Number 1, Number 2, and Result
      private JTextField jtfNum1, jtfNum2, jtfResult;
      // Buttons "Add", "Subtract", "Multiply" and "Divide"
      private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;
      // Menu items "Add", "Subtract", "Multiply","Divide" and "Close"
      private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;
      /** Main method */
      public static void main(String[] args) {
        MenuDemo frame = new MenuDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
      /** Default constructor */
      public MenuDemo() {
        setTitle("Menu Demo");
        // Create menu bar
        JMenuBar jmb = new JMenuBar();
        // Set menu bar to the frame
        setJMenuBar(jmb);
        // Add menu "Operation" to menu bar
        JMenu operationMenu = new JMenu("Operation");
        operationMenu.setMnemonic('O');
        jmb.add(operationMenu);
        // Add menu "Exit" in menu bar
        JMenu exitMenu = new JMenu("Exit");
        exitMenu.setMnemonic('E');
        jmb.add(exitMenu);
        // Add menu items with mnemonics to menu "Operation"
        operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));
        operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));
        operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));
        operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));
        exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));
        // Set keyboard accelerators
        jmiAdd.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
        jmiSub.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
        jmiMul.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));
        jmiDiv.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
        // Panel p1 to hold text fields and labels
        JPanel p1 = new JPanel();
        p1.setLayout(new FlowLayout());
        p1.add(new JLabel("Number 1"));
        p1.add(jtfNum1 = new JTextField(3));
        p1.add(new JLabel("Number 2"));
        p1.add(jtfNum2 = new JTextField(3));
        p1.add(new JLabel("Result"));
        p1.add(jtfResult = new JTextField(4));
        jtfResult.setEditable(false);
        // Panel p2 to hold buttons
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jbtAdd = new JButton("Add"));
        p2.add(jbtSub = new JButton("Subtract"));
        p2.add(jbtMul = new JButton("Multiply"));
        p2.add(jbtDiv = new JButton("Divide"));
        // Add panels to the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners
        jbtAdd.addActionListener(this);
        jbtSub.addActionListener(this);
        jbtMul.addActionListener(this);
        jbtDiv.addActionListener(this);
        jmiAdd.addActionListener(this);
        jmiSub.addActionListener(this);
        jmiMul.addActionListener(this);
        jmiDiv.addActionListener(this);
        jmiClose.addActionListener(this);
      /** Handle ActionEvent from buttons and menu items */
      public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
        // Handle button events
        if (e.getSource() instanceof JButton) {
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
        else if (e.getSource() instanceof JMenuItem) {
          // Handle menu item events
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
          else if ("Close".equals(actionCommand))
            System.exit(0);
      /** Calculate and show the result in jtfResult */
      private void calculate(char operator) {
        // Obtain Number 1 and Number 2
        int num1 = (Integer.parseInt(jtfNum1.getText().trim()));
        int num2 = (Integer.parseInt(jtfNum2.getText().trim()));
        int result = 0;
        // Perform selected operation
        switch (operator) {
          case '+': result = num1 + num2;
                    break;
          case '-': result = num1 - num2;
                    break;
          case '*': result = num1 * num2;
                    break;
          case '/': result = num1 / num2;
        // Set result in jtfResult
        jtfResult.setText(String.valueOf(result));
    Mortgage applet code....
    // MortgageApplet.java: Applet for computing mortgage payments
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.TitledBorder;
    public class MortgageApplet extends JApplet
      implements ActionListener {
      // Declare and create text fields for interest rate
      // year, loan amount, monthly payment, and total payment
      private JTextField jtfAnnualInterestRate = new JTextField();
      private JTextField jtfNumOfYears = new JTextField();
      private JTextField jtfLoanAmount = new JTextField();
      private JTextField jtfMonthlyPayment = new JTextField();
      private JTextField jtfTotalPayment = new JTextField();
      // Declare and create a Compute Mortgage button
      private JButton jbtComputeMortgage = new JButton("Compute Mortgage");
      /** Initialize user interface */
      public void init() {
        // Set properties on the text fields
        jtfMonthlyPayment.setEditable(false);
        jtfTotalPayment.setEditable(false);
        // Right align text fields
        jtfAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);
        jtfNumOfYears.setHorizontalAlignment(JTextField.RIGHT);
        jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);
        jtfMonthlyPayment.setHorizontalAlignment(JTextField.RIGHT);
        jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);
        // Panel p1 to hold labels and text fields
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(5, 2));
        p1.add(new Label("Annual Interest Rate"));
        p1.add(jtfAnnualInterestRate);
        p1.add(new Label("Number of Years"));
        p1.add(jtfNumOfYears);
        p1.add(new Label("Loan Amount"));
        p1.add(jtfLoanAmount);
        p1.add(new Label("Monthly Payment"));
        p1.add(jtfMonthlyPayment);
        p1.add(new Label("Total Payment"));
        p1.add(jtfTotalPayment);
        p1.setBorder(new
          TitledBorder("Enter interest rate, year and loan amount"));
        // Panel p2 to hold the button
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
        p2.add(jbtComputeMortgage);
        // Add the components to the applet
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listener
        jbtComputeMortgage.addActionListener(this);
      /** Handle the "Compute Mortgage" button */
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbtComputeMortgage) {
          // Get values from text fields
          double interest = (Double.valueOf(
            jtfAnnualInterestRate.getText())).doubleValue();
          int year =
            (Integer.valueOf(jtfNumOfYears.getText())).intValue();
          double loan =
            (Double.valueOf(jtfLoanAmount.getText())).doubleValue();
          // Create a mortgage object
          Mortgage m = new Mortgage(interest, year, loan);
          // Display monthly payment and total payment
          jtfMonthlyPayment.setText(String.valueOf(m.monthlyPayment()));
          jtfTotalPayment.setText(String.valueOf(m.totalPayment()));
    }

    Does it have to be an applet?
    If you want the same behaviour as in the code with traffic lights, change
    class MortgageApplet extends JApplet implements ActionListener {
    to
    class MortgageApplet extends JFrame implements ActionListener {
    and change
    public void init() {
    to
    public MortgageApplet() {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • I try to create my Account ID....and i don't understand why i have to put payment? before my friend create Account ID don't have to put payment they still can create account ID... and now i buy iphone but i don't have credit card that mind i can't not do

    Dear
    I try to create my Account ID....and i don't understand why i have to put payment? before my friend create Account ID don't have to put payment they still can create account ID... and now i buy iphone but i don't have credit card that mind i can't not do it

    Hi,
    This Link explains how to Set Up an Account ID...  without a credit card...
    http://support.apple.com/kb/HT2534
    Hope it helps,
    Cheers,

  • From what I understand RAW photos are supposed to open in raw in photoshop CC.  I don't understand why my RAW photos don't open in RAW in photoshop CC or Lightroom 5

    From what I understand RAW photos are supposed to open in raw in photoshop CC. I don't understand why my RAW photos don't open in RAW in photoshop CC or Lightroom 5

    Has the behavior changed compared to how it used to open ? If so, do you refer to the Camera RAW window similar to this: http://screenshots.en.sftcdn.net/en/scrn/78000/78026/adobe-camera-raw-22.jpg
    What is the file extension of your photos ?
    In Lightroom, there is no special way of opening a RAW file vs. JPEG. They all open the same. What is the Lightroom behavior ? Can you post a screenshot ?

  • I don't understand why me phone keep saying my phone is disable can I get help please

    I need help I don't understand why my phone is telling me its disable and want let me in the App Store I Changed the pass word now what can I do

    If you are having store account problems, contact the iTunes/app store staff at http://www.apple.com/emea/support/itunes/contact.html and they can straighten out your account.

  • Help! my iPod touch bluetooth cannot discover my iPad nor mac air, but it can discover other devices... I don't understand why.  My Mac and my iPad can't discover it, as well... :(

    My iPod touch bluetooth cannot discover my iPad nor mac air, but it can discover other devices... I don't understand why.  My Mac and my iPad can't discover it, as well...

    Thanks for this... I actually wanted to pair my iPad with my iPod touch so I can use the keynote remote app in my iPod touch to control my keynote presentations... I was able to control my presentations through wifi... I wanted to use the bluetooth since internet connection is quite slow.. The app tells me I can connect through bluetooth with my iPad but sadly, it can't... I've been trying to pair them but the can't discover each other... :(

  • HT5622 Charged when I bought a free app? I bought a free app(Documents by Readdle) for free. In my account I had 6.37 but now I have 3.19!! I don't understand why because it was a free app? What do I do and how do I get my money back?

    I bought a free app(Documents by Readdle) for free. In my account I had $6.37 but now I have $3.19!! I don't understand why because it was a free app? What do I do and how do I get my money back?

    Hi caw52,
    Welcome to the Support Communities!
    The following information should help you with this:
    How to report an issue with your iTunes Store, App Store, Mac App Store, or iBookstore purchase
    http://support.apple.com/kb/HT1933?viewlocale=en_US
    Cheers,
    Judy

  • I have seen on this community that the earpods do not work on iPod shuffle gen 3 but when I was using on them it worked the control panel thing that is but only until I turned it off I don't understand why it won't work again and why it did in the first p

    I have seen on this community that the earpods do not work on iPod shuffle gen 3 but when I was using on them it worked the control panel thing that is but only until I turned it off I don't understand why it won't work again and why it did in the first place can someone please explain and tell me how to make it work again

    Sorry first time asking question didn't mean to write same thing twice well copy paste

  • I have done the softer update and now this system request a connection with a meanie HD and I connector for iTunes I don't understand why ?

    I have done the softer update and now this system request a connection with a Mini  HDMI  connector for iTunes I don't understand why ?
    DO I HAVE TO HAVE THE MINI HDMI CONNECTOR TO COMPLETE THE SOFTER UPDATE PROCESS ?

    You might be seeing a Micro USB cable (Not HDMI) that is because your Apple Tv is in Recovery Mode due to some reason and it needs to be Restored by connecting it to iTunes on your Computer. So if you have a Micro USB cable ( which comes with Android Smart Phones ) then try to connect your Apple Tv to your computer using the same and with the help of iTunes Restore your Apple Tv to Factory Settings. Go through the below Apple Support kb which says " If your Apple TV still does not respond or if you were unable to follow the above steps "
    http://support.apple.com/kb/ht4367

  • I bought ifiles app. But I paid a lot of time prize. I don't understand why... Please solve problem!

    I bought ifiles app. But I paid a lot of time prize. I don't understand why... Please solve problem!

    tuydun wrote:
    .. Please solve problem!
    To Contact iTunes Customer Service and request assistance
    Use this Link  >  Apple  Support  iTunes Store  Contact

  • HT6312 I don't understand why you are holding our documents captive!

    How can you NOT make it backwards compatible!  I prefer not to install the latest IOS (as we've seen what happens, with the last IOS update)  before I am comfortable with the update. This is irresponsible and not customer friendly.  Basically I am S.O.L. if I have an older iPhone or iPad.  Thanks for being so customer friendly.

    James,
    Sorry I did not realize it was User to User.  Very funny, really.  Who would you like the check made out to?  LOL
    So I went to login to iCloud (on my PC) and I was forced to update to a different version of iCloud that would no longer allow any devices below IOS 8 access to the Pages area.  I just don't understand why thy (Apple developers) cannot make it backwards compatible. 

  • I don't understand why appear new decimals.

     

    Hi Jorge,
    Instead of using
    Data.SetValue(FormatDouble.DecodeDouble(self.PKg));
    use
    Data.SetValue(FormatDouble.DecodeDecimal(self.PKg,Data.Scale)); //
    This will take the second parameter of scale
    You will see the desired results.
    Thks,
    Sanjay
    -----Original Message-----
    From: Dave Ortman [SMTP:dortmanyahoo.com]
    Sent: Monday, March 05, 2001 12:32
    To: Jorge Bellido; forte-userslists.xpedior.com
    Subject: Re: (forte-users) I don't understand why appear new
    decimals.
    Simply put, the problem stems from the fact that
    floating-point arithmetic is inherently imprecise.
    Rounding errors are common.
    With doubles, you get 16 digits of accuracy. Beyond
    that there is no guarantee.
    If you want more information:
    http://docs.sun.com/htmlcoll/coll.648.2/iso-8859-1/NUMCOMPGD/ncg_goldberg.ht
    ml
    -Dave Ortman
    --- Jorge Bellido <jorge.bellidoeam.es> wrote:
    > I have another problem with numbers. So,
    >
    > Data: DecimalNullable = new;
    > Data.Scale = 20;
    > FormatDouble.Template = TextData(value='#');
    >
    > Dato.SetValue(FormatDouble.DecodeDouble(self.PKg));
    >
    > PKg is a widget DataField, whose mapped type is
    > TextData with input mask float. When I write 1.12
    > into the widget the variable Data is
    > 1.1200000000000001, and I can't understand it. I
    > would like that variable Data was 1.12.
    >
    > Could anybody to explain it?
    >
    > Thank you very much.
    >
    For the archives, go to: http://lists.xpedior.com/forte-users and
    use
    the login: forte and the password: archive. To unsubscribe, send in
    a new
    email the word: 'Unsubscribe' to:
    forte-users-requestlists.xpedior.com

  • I don't understand why i cant log in to my fb account using mozilla but with googlechrome i am able to do that.. mozilla can load up the fb site but cannot log in to my fb account.. i am comfortable with using the mozilla as my browser.. pls help thanks

    i don't understand why i cant log in to my fb account using mozilla but with googlechrome i am able to do that.. mozilla can load up the fb site but cannot log in to my fb account.. i am comfortable with using the mozilla as my browser.. pls help thanks

    hey thanks alot.. it helped me alot!! bring it on!!! cheers!!!

Maybe you are looking for

  • How can I transfer my NANO songs to the iTunes library?

    Could anybody please sum up the question?

  • Aggregate function using DB adapter

    Is it possible to use aggrgeate functions like count and things like ROWNUM using the DBAdapter wizard in BPEL 10.1.2 ? For Example how can I configure a query like Select * from emp where ROWNUM<500

  • Information message

    When I start my program I will show an information message about what the program does. Where in my program should I write this message and how?

  • Blue screen after installing

    Hi, I have a PowerPC G5 that I need to install Tiger, erase and install on the mac HD reboots a nd I get the a blue screen and mouse , that it. Help... Thanks Martin

  • Disable the validation message

    Hi, How to disable the validation message "<fieldname> cannot be blank"? But when Submit button is clicked, it should still display the standard validation message "At least one required field was empty". Many thanks in advance.