I don't understand SUP-to-client assigment

Hi everyone,
I have one SCCM Primary site - P01 - with 2 Distribution points in 2 AD sites - SITE01 and SITE02. Both distribution points have SUP role installed. The primary site server, P01, belongs to SITE01. The first DP, DP01, belongs to SITE01, the second, DP02,
belongs to SITE02.
I have two clients - both in SITE02. But the first client has DP01 as intranet windows update source assigned, and the second has DP02. There is no domain Group Policy Objects involved - and I cannot understand, how SCCM client chooses his DP.

Hi,
It is described here how SUP's fail-over, the purpose of multiple SUP's is the same as multiple MP's, faul tolerance, that is why it isn't boundary group aware.
http://blogs.technet.com/b/configmgrteam/archive/2013/03/27/software-update-points-in-cm2012sp1.aspx
Regards,
Jörgen
-- My System Center blog ccmexec.com -- Twitter
@ccmexec

Similar Messages

  • I don't understand my EtreCheck report. What can I do to improve the speed of my Macbook 2010, which became very slow after upgrading to Yosemite?

    I just updated my Macbook (2010) to Yosemite, and it's become very slow. After searching through this community, I downloaded and run EtreCheck, but don't understand what the report means. Please could you help me with what I should do to improve my computer's speed, aside from upgrading my RAM? Thank you so much.
    The report:
    Problem description:
    my macbook is running very slowly after upgrading to yosemite.
    EtreCheck version: 2.0.11 (98)
    Report generated 12 November 2014 1:44:14 pm SGT
    Hardware Information: ℹ️
      MacBook (13-inch, Mid 2010) (Verified)
      MacBook - model: MacBook7,1
      1 2.4 GHz Intel Core 2 Duo CPU: 2-core
      2 GB RAM Upgradeable
      BANK 0/DIMM0
      1 GB DDR3 1067 MHz ok
      BANK 1/DIMM0
      1 GB DDR3 1067 MHz ok
      Bluetooth: Old - Handoff/Airdrop2 not supported
      Wireless:  en1: 802.11 a/b/g/n
    Video Information: ℹ️
      NVIDIA GeForce 320M - VRAM: 256 MB
      Color LCD 1280 x 800
    System Software: ℹ️
      OS X 10.10 (14A389) - Uptime: 3:23:3
    Disk Information: ℹ️
      TOSHIBA MK2555GSXF disk0 : (250.06 GB)
      S.M.A.R.T. Status: Verified
      EFI (disk0s1) <not mounted> : 210 MB
      Macintosh HD (disk0s2) /  [Startup]: 249.20 GB (25.42 GB free)
      Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
      HL-DT-ST DVDRW  GS23N 
    USB Information: ℹ️
      Western Digital My Passport 0748 1 TB
      S.M.A.R.T. Status: Verified
      EFI (disk1s1) <not mounted> : 210 MB
      tansey (disk1s2) /Volumes/tansey : 999.83 GB (951.98 GB free)
      Apple Inc. Built-in iSight
      Apple Inc. BRCM2070 Hub
      Apple Inc. Bluetooth USB Host Controller
      Apple Inc. Apple Internal Keyboard / Trackpad
    Configuration files: ℹ️
      /etc/hosts - Count: 15
    Gatekeeper: ℹ️
      Mac App Store and identified developers
    Kernel Extensions: ℹ️
      /System/Library/Extensions
      [not loaded] com.NovatelWireless.driver.NovatelWirelessUSBCDCECMControl (3.0.13) Support
      [not loaded] com.NovatelWireless.driver.NovatelWirelessUSBCDCECMData (3.0.13) Support
      [not loaded] com.ZTE.driver.ZTEUSBCDCACMData (1.3.8) Support
      [not loaded] com.ZTE.driver.ZTEUSBMassStorageFilter (1.3.8) Support
      [not loaded] com.novamedia.driver.IceraUSB_MSD_Bypass (1.3.0) Support
      [not loaded] com.novatelwireless.driver.3G (3.0.13) Support
      [not loaded] com.novatelwireless.driver.DisableAutoInstall (3.0.13) Support
      [not loaded] com.option.driver.Option72 (2.15.0) Support
      [not loaded] com.option.driver.OptionHS (3.26.0) Support
      [not loaded] com.option.driver.OptionMSD (1.21.0) Support
      [not loaded] com.option.driver.OptionQC (1.11.0) Support
      [not loaded] com.rim.driver.BlackBerryUSBDriverInt (0.0.39) Support
      [not loaded] com.rim.driver.BlackBerryUSBDriverVSP (0.0.45) Support
      [not loaded] com.vodafone.driver (3.0.9) Support
      [not loaded] com.zte.driver.cdc_ecm_qmi (1.0.1) Support
      [not loaded] com.zte.driver.cdc_usb_bus (1.0.1) Support
      [not loaded] de.novamedia.driver.NMSamsung (0.0.2) Support
      [not loaded] de.novamedia.driver.NMSmartplugSCSIDevice (1.0.1) Support
      [not loaded] de.novamedia.oem.vodafone.vtp.huawei.cdc (0.0.2) Support
      /System/Library/Extensions/NMHuaweiPhonesVTPCDC_106.kext/Contents/PlugIns
      [not loaded] de.novamedia.driver.NMUSBCDCACMControl (3.2.12) Support
      /System/Library/Extensions/NMSamsungDriver_106.kext/Contents/PlugIns
      [not loaded] de.novamedia.driver.NMUSBCDCACMData (3.2.12) Support
      /System/Library/Extensions/NovatelWireless3G.kext/Contents/PlugIns
      [not loaded] com.novatelwireless.driver.3GData (3.0.13) Support
      /System/Library/Extensions/Vodafone.kext/Contents/PlugIns
      [not loaded] com.vodafone.driver.Data (3.0.9) Support
    Startup Items: ℹ️
      HP IO: Path: /Library/StartupItems/HP IO
      HWNetMgr: Path: /Library/StartupItems/HWNetMgr
      HWPortDetect: Path: /Library/StartupItems/HWPortDetect
      Startup items are obsolete and will not work in future versions of OS X
    Problem System Launch Agents: ℹ️
      [failed] com.apple.accountsd.plist
      [failed] com.apple.AirPlayUIAgent.plist
      [failed] com.apple.bird.plist
      [failed] com.apple.CallHistoryPluginHelper.plist
      [failed] com.apple.CallHistorySyncHelper.plist
      [failed] com.apple.cloudd.plist
      [failed] com.apple.coreservices.appleid.authentication.plist
      [failed] com.apple.coreservices.uiagent.plist
      [failed] com.apple.EscrowSecurityAlert.plist
      [failed] com.apple.icloud.fmfd.plist
      [failed] com.apple.iconservices.iconservicesagent.plist
      [failed] com.apple.nsurlsessiond.plist
      [failed] com.apple.pluginkit.pkd.plist
      [failed] com.apple.recentsd.plist
      [failed] com.apple.security.cloudkeychainproxy.plist
      [failed] com.apple.spindump_agent.plist
      [failed] com.apple.telephonyutilities.callservicesd.plist
    Problem System Launch Daemons: ℹ️
      [failed] com.apple.awdd.plist
      [failed] com.apple.cache_delete.plist
      [failed] com.apple.coresymbolicationd.plist
      [failed] com.apple.ctkd.plist
      [failed] com.apple.diagnosticd.plist
      [failed] com.apple.iconservices.iconservicesagent.plist
      [failed] com.apple.iconservices.iconservicesd.plist
      [failed] com.apple.ifdreader.plist
      [failed] com.apple.installd.plist
      [failed] com.apple.MobileFileIntegrity.plist
      [failed] com.apple.nehelper.plist
      [failed] com.apple.nsurlsessiond.plist
      [failed] com.apple.sandboxd.plist
      [failed] com.apple.softwareupdated.plist
      [failed] com.apple.spindump.plist
      [failed] com.apple.sysmond.plist
      [failed] com.apple.tccd.system.plist
      [failed] com.apple.wdhelper.plist
      [failed] com.apple.xpc.smd.plist
      [running] de.novamedia.nmnetmgrd.plist Support
    Launch Agents: ℹ️
      [not loaded] com.adobe.AAM.Updater-1.0.plist Support
      [failed] com.adobe.CS5ServiceManager.plist Support
      [loaded] com.google.keystone.agent.plist Support
      [running] de.novamedia.VodafoneDeviceObserver.plist Support
      [invalid?] SwapperUFi.plist Support
    Launch Daemons: ℹ️
      [loaded] com.adobe.fpsaud.plist Support
      [invalid?] com.adobe.SwitchBoard.plist Support
      [loaded] com.cloudpath.maccmd.plist Support
      [loaded] com.google.keystone.daemon.plist Support
      [loaded] com.microsoft.office.licensing.helper.plist Support
      [invalid?] PPPMonitord.plist Support
    User Launch Agents: ℹ️
      [loaded] com.adobe.ARM.[...].plist Support
      [invalid?] com.akamai.client.plist Support
      [invalid?] com.divx.agent.postinstall.plist Support
      [failed] com.facebook.videochat.[redacted].plist Support
    User Login Items: ℹ️
      Dropbox Application (/Applications/Dropbox.app)
      SurplusMeterAgent UNKNOWN (missing value)
      Google Chrome ApplicationHidden (/Applications/Google Chrome.app)
      HP Scheduler Application (/Library/Application Support/Hewlett-Packard/Software Update/HP Scheduler.app)
    Internet Plug-ins: ℹ️
      o1dbrowserplugin: Version: 5.38.6.0 - SDK 10.8 Support
      Google Earth Web Plug-in: Version: 7.1 Support
      Default Browser: Version: 600 - SDK 10.10
      OfficeLiveBrowserPlugin: Version: 12.2.6 Support
      OVSHelper: Version: 1.1 Support
      AdobePDFViewerNPAPI: Version: 10.1.12 Support
      FlashPlayer-10.6: Version: 15.0.0.152 - SDK 10.6 Support
      Silverlight: Version: 5.1.10411.0 - SDK 10.6 Support
      Flash Player: Version: 15.0.0.152 - SDK 10.6 Mismatch! Adobe recommends 15.0.0.223
      iPhotoPhotocast: Version: 7.0
      googletalkbrowserplugin: Version: 5.38.6.0 - SDK 10.8 Support
      QuickTime Plugin: Version: 7.7.3
      AdobePDFViewer: Version: 10.1.12 Support
      SharePointBrowserPlugin: Version: 14.0.0 Support
      JavaAppletPlugin: Version: 15.0.0 - SDK 10.10 Check version
    User Internet Plug-ins: ℹ️
      OctoshapeWeb: Version: 1.0 Support
    Safari Extensions: ℹ️
      DivX Plus Web Player HTML5 <video>
    3rd Party Preference Panes: ℹ️
      DivX  Support
      Flash Player  Support
    Time Machine: ℹ️
      Skip System Files: NO
      Auto backup: NO - Auto backup turned off
      Volumes being backed up:
      Macintosh HD: Disk size: 249.20 GB Disk used: 223.78 GB
      Destinations:
      Time Machine Backups [Local]
      Total size: 0 B
      Total number of backups: 0
      Oldest backup: -
      Last backup: -
      Size of backup disk: Too small
      Backup size 0 B < (Disk used 223.78 GB X 3)
    Top Processes by CPU: ℹ️
          15% WindowServer
          1% Dropbox
          0% AppleSpell
          0% Skype
          0% imagent
    Top Processes by Memory: ℹ️
      60 MB Google Chrome
      56 MB JavaApplicationStub
      47 MB Skype
      45 MB Finder
      45 MB WindowServer
    Virtual Memory Information: ℹ️
      60 MB Free RAM
      443 MB Active RAM
      398 MB Inactive RAM
      349 MB Wired RAM
      16.91 GB Page-ins
      633 MB Page-outs

    I advise to reply to the one you want to reply to.
    You have had good information here. I will not repeat that here.
    I would like to add:
    you have incompatible software: start in SafeMode, read Woodmeister and see if it is free of issues.
    Akamai is crap software needed or not, Huawei the same.
    It is very possible that the keygenerator you used for generating a key for some softwares has infected your mac.
    The non-regular software with the false key(s) are not compatible probably or generate malware. Luckily you can not update them automatically because the keygenerator blocked the software for contacting the developer... I propose to consider getting rid of those softwares by really good uninstalling.
    You have a beautiful mac, don't degenerate it with crapped software. There are alternatives for expensive software, for example Adobe Photoshop has a free alternative (with a less beautiful interface) in GIMP. And so on.
    Lex

  • 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() {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Don't understand the java.lang.OutOfMemoryError

    Hi there,
    I try to create an 'About' frame for a small programm I created and I get an java.lang.OutOfMemoryError which I don't understand. Can somebody help?
    Here is my code:
    * TabbedPaneDemo.java is a 1.4 example that requires one additional file:
    *   images/middle.gif.
    import javax.swing.JTabbedPane;
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import javax.swing.JComponent;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.KeyEvent;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    public class TabbedAbout extends JPanel {
              JLabel label=new JLabel("PRODUCT INFORMATION ");
                JLabel pv=new JLabel("Product version:");
                JLabel pvR=new JLabel("1.0");
                JLabel javav=new JLabel("Java Version:");
                JLabel javavR=new JLabel("1.4.2");
                JLabel sqlv=new JLabel("PostgreSQL Version:");
                JLabel sqlvR=new JLabel("8.1");
                JLabel pt=new JLabel("Programming Team:");
                JLabel onoma1=new JLabel("Gkisis Traianos");
                JLabel onoma2=new JLabel("Zafeiropoulos Ioannis");
                JLabel onoma3=new JLabel("Supervisor Teacher:");
                JLabel onoma3R=new JLabel("Stamatis Dimosthenis");
                JLabel alr=new JLabel("Product developed as dissertation for the ATEI");
                JLabel alr2=new JLabel("Thessaloniki on autumn 2006.");
                JLabel alr1=new JLabel("All rights reserved");
                ImageIcon icon = createImageIcon("images/folder_sticky.gif");
            ImageIcon icon2 = createImageIcon("images/tick.gif");
        public TabbedAbout() {
             JLabel panel1 = new JLabel();
             JFrame frame = new JFrame("About");
             JFrame.setDefaultLookAndFeelDecorated(true);
             frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
             //super(new GridLayout(1, 1));
            JTabbedPane tabbedPane = new JTabbedPane();
            panel1.setIcon(new ImageIcon("images/TakeANoteProgress.jpg"));
            tabbedPane.addTab("About", icon, panel1);
            tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
            JPanel panel2 = new JPanel();
            //JFrame frame2 = new JFrame();
            panel2.setLayout(null);
            label.setIcon(icon2);
            label.setBounds(new Rectangle(20, 20, 200, 25));
            pv.setBounds(new Rectangle(20, 40, 175, 45));
            pvR.setBounds(new Rectangle(180, 40, 175, 45));
            javav.setBounds(new Rectangle(20, 60, 175, 45));
            javavR.setBounds(new Rectangle(180, 60, 175, 45));
            sqlv.setBounds(new Rectangle(20, 80, 175, 45));
            sqlvR.setBounds(new Rectangle(180, 80, 175, 45));
            pt.setBounds(new Rectangle(20, 100, 175, 45));
            onoma1.setBounds(new Rectangle(180, 100, 175, 45));
            onoma2.setBounds(new Rectangle(180, 120, 175, 45));
            onoma3.setBounds(new Rectangle(20, 140, 175, 45));
            onoma3R.setBounds(new Rectangle(180, 140, 175, 45));
            alr.setBounds(new Rectangle(20, 190, 500, 45));
            alr2.setBounds(new Rectangle(20, 210, 500, 45));
            alr1.setBounds(new Rectangle(20, 250, 500, 45));
            panel2.add(label);
            panel2.add(pv);
            panel2.add(pvR);
            panel2.add(javav);
            panel2.add(javavR);
            panel2.add(sqlv);
            panel2.add(sqlvR);
            panel2.add(pt);
            panel2.add(onoma1);
            panel2.add(onoma2);
            panel2.add(onoma3);
            panel2.add(onoma3R);
            panel2.add(alr);
            panel2.add(alr2);
            panel2.add(alr1);
            tabbedPane.addTab("Detail", icon, panel2);
            tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
            tabbedPane.setSize(new Dimension(400, 300));
            //Add the tabbed pane to this panel.
            add(tabbedPane);
            //Uncomment the following line to use scrolling tabs.
            //tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
            //Create and set up the content pane.
            JComponent newContentPane = new TabbedAbout();
            newContentPane.setOpaque(true); //content panes must be opaque
            frame.getContentPane().add(new TabbedAbout(),
                                     BorderLayout.CENTER);
            //Display the window.
            frame.setLocationRelativeTo(super.getComponent(0));
            frame.pack();
            frame.setResizable(false);
            frame.setVisible(true);
        protected JComponent makeTextPanel(String text) {
            JPanel panel = new JPanel(false);
            JLabel filler = new JLabel(text);
            filler.setHorizontalAlignment(JLabel.CENTER);
            //panel.setLayout(new GridLayout(1, 1));
            panel.add(filler);
            return panel;
        /** Returns an ImageIcon, or null if the path was invalid. */
        protected static ImageIcon createImageIcon(String path) {
            java.net.URL imgURL = TabbedAbout.class.getResource(path);
            if (imgURL != null) {
                return new ImageIcon(imgURL);
            } else {
                System.err.println("Couldn't find file: " + path);
                return null;
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
       // private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
            //Create and set up the window.
      public static void main(String[] args) {
      //      //Schedule a job for the event-dispatching thread:
        //    //creating and showing this application's GUI.
            //javax.swing.SwingUtilities.invokeLater(new Runnable() {
             // public void run() {
                   TabbedAbout a=new TabbedAbout();
        }Thanks in advance

    I will try your suggestions. But still I don't understand. It was running independently very ok and it was what I wanted. It was built excatly as the example in
    With run and main etc etc. But when I put it in my rest program it started and stack overflow error. Then I tried to change, change, change and got this last form.
    This is what I had before but didn't work with my rest program.
    * TabbedPaneDemo.java is a 1.4 example that requires one additional file:
    *   images/middle.gif.
    import javax.swing.JTabbedPane;
    import javax.swing.ImageIcon;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import javax.swing.JComponent;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.KeyEvent;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    public class TabbedAbout extends JPanel {
      JLabel label=new JLabel("PRODUCT INFORMATION ");
      JLabel pv=new JLabel("Product version:");
      JLabel pvR=new JLabel("1.0");
      JLabel javav=new JLabel("Java Version:");
      JLabel javavR=new JLabel("1.4.2");
      JLabel sqlv=new JLabel("PostgreSQL Version:");
      JLabel sqlvR=new JLabel("8.1");
      JLabel pt=new JLabel("Programming Team:");
      JLabel onoma1=new JLabel("Gkisis Traianos");
      JLabel onoma2=new JLabel("Zafeiropoulos Ioannis");
      JLabel onoma3=new JLabel("Supervisor Teacher:");
      JLabel onoma3R=new JLabel("Dimosthenis Stamatis");
      JLabel alr=new JLabel("Product developed as dissertation for the ATEI Thessaloniki on autumn 2006.");
      JLabel alr1=new JLabel("All rights reserved");
        public TabbedAbout() {
            //super(new GridLayout(1, 1));
            JTabbedPane tabbedPane = new JTabbedPane();
            ImageIcon icon = createImageIcon("images/folder_sticky.gif");
            JLabel panel1 = new JLabel();
            panel1.setIcon(new ImageIcon("images/TakeANote.jpg"));
            tabbedPane.addTab("About", icon, panel1);
            tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
            JPanel panel2 = new JPanel();
            JFrame frame = new JFrame();
            panel2.setLayout(null);
             label.setBounds(new Rectangle(170, 20, 150, 25));
             pv.setBounds(new Rectangle(90, 40, 175, 45));
             pvR.setBounds(new Rectangle(220, 40, 175, 45));
             javav.setBounds(new Rectangle(90, 60, 175, 45));
             javavR.setBounds(new Rectangle(220, 60, 175, 45));
             sqlv.setBounds(new Rectangle(90, 80, 175, 45));
             sqlvR.setBounds(new Rectangle(220, 80, 175, 45));
             pt.setBounds(new Rectangle(90, 100, 175, 45));
             onoma1.setBounds(new Rectangle(220, 100, 175, 45));
             onoma2.setBounds(new Rectangle(220, 120, 175, 45));
             onoma3.setBounds(new Rectangle(90, 140, 175, 45));
             onoma3R.setBounds(new Rectangle(220, 140, 175, 45));
             alr.setBounds(new Rectangle(30, 170, 500, 45));
             alr1.setBounds(new Rectangle(170, 190, 500, 45));
            panel2.add(label);
            panel2.add(pv);
            panel2.add(pvR);
            panel2.add(javav);
            panel2.add(javavR);
            panel2.add(sqlv);
            panel2.add(sqlvR);
            panel2.add(pt);
            panel2.add(onoma1);
            panel2.add(onoma2);
            panel2.add(onoma3);
            panel2.add(onoma3R);
            panel2.add(alr);
            panel2.add(alr1);
            tabbedPane.addTab("Detail", icon, panel2);
            tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
            tabbedPane.setSize(new Dimension(400, 300));
            //Add the tabbed pane to this panel.
            add(tabbedPane);
            //Uncomment the following line to use scrolling tabs.
            //tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
        protected JComponent makeTextPanel(String text) {
            JPanel panel = new JPanel(false);
            JLabel filler = new JLabel(text);
            filler.setHorizontalAlignment(JLabel.CENTER);
            //panel.setLayout(new GridLayout(1, 1));
            panel.add(filler);
            return panel;
        /** Returns an ImageIcon, or null if the path was invalid. */
        protected static ImageIcon createImageIcon(String path) {
            java.net.URL imgURL = TabbedAbout.class.getResource(path);
            if (imgURL != null) {
                return new ImageIcon(imgURL);
            } else {
                System.err.println("Couldn't find file: " + path);
                return null;
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
        private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
            JFrame.setDefaultLookAndFeelDecorated(true);
            //Create and set up the window.
            JFrame frame = new JFrame("About");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Create and set up the content pane.
            JComponent newContentPane = new TabbedAbout();
            newContentPane.setOpaque(true); //content panes must be opaque
            frame.getContentPane().add(new TabbedAbout(),
                                     BorderLayout.CENTER);
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        public static void main(String[] args) {
            //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
    }But independetly was working just fine. Excatly as I wanted
    Message was edited by:
    sickboy

  • SCCM 2012 Built in Compliance Report - I don't understand well

    SCCM 2012 Built in Compliance Report not understanding
    I am using built in compliance reports in SCCM 2012 (Compliance 1 – overall compliance), which is giving me inconsistence report.
    For now, I am now updating many of my servers manually and finding out- how I can show compliance report using SCCM
    I have a created a software group only for compliance propose for Aug 2014, containing all updates for all versions of Windows Servers. I have not changed/updates that software group.
    Before Microsoft released last patches, the software group didn’t have any expired updates.
    I had good number of servers, where showing compliant
    However, after new patched have released and I have patched some servers manually, I can now see that I have some servers in to Non-compliant section, which were in compliant section two weeks before.
    I also have now lots of server showing in: Compliance state unknown, which I didn’t have two weeks before.
    I know, client servers supposed to report to SCCM in every 7 days and I can manually push a client to report to SCCM from client agent. Please help me to understand
    Why some servers, where compliant before, are now showing non-compliant? How to be certain, which updates are causing trouble
    When I check individual server into compliant sections I see that some updates are showing under * Is Required * I also don’t understand how that server is compliant then There are additional number of updates showing up, which are not part of my software
    group. Where those extra information are coming from. From WSUS ?  
    My final goal is to create monthly Software group> deploy that group to install patched. Next month include that group to a compliance group for only compliance reporting purpose. After every quarter, create one compliance group, combing all three
    months updates. So I can show to everyone that we have complied until x months.
    Before all can happen, I want to understand my compliance report better.
    Thanks in advance.

    Hi,
    However, after new patched have released and I have patched some servers manually, I can now see that I have some servers in to Non-compliant section, which were in compliant section two weeks before.
    Since the issue occur after you applied the latest patches.  Please check your deployment, you can see the detail error there. 
    And please make sure update did intalled successfully on these servers.

  • HT5527 Hello, I had 25Go transfered from MobileMe, skimmed down to 5Go now. I cleaned my emails. From mail, on my mac, 'get account information' shows less than 1 Go... From System preferences/iCloud, up to yesterday it showed 12Go... I don't understand!

    Hello, I had 25Go transfered from MobileMe, skimmed down to 5Go now. I cleaned my emails. From mail, on my mac, 'get account information' shows less than 1 Go... From System preferences/iCloud, up to yesterday it showed 12Go...
    I don't understand!
    These information are contradctory. Now my account is locked.
    What Am I supposed to do???
    thanks for your help!

    Well as far as I can tell the only developed alternative to Apple is Microsoft, sure you want to go there?
    iCloud (and Mobile Me before it) are consumer level systems, working correctly they are a poor choice for business use, if you want to stay all Mac try Zimbra if you can let a little Microsoft in the mix use Microsoft Exchange (Mail, iCal & Address Book are compatible as clients), hosted Exchange systems cost about $10 per month.
    Or try to fix what is wrong with your installation (which is clearly not running as it should)

  • I don't understand how to setup iChat Server

    I have iChat server running, but when I try to setup an account on the client side, I get an error that the Jabber user ID is invalid.
    I don't understand. Why wouldn't the Jabber ID not be the same as the login information for the rest of the services?

    server.companyname.com.
    that is correct is you have it set that way. You can make changes and have so you can log in as [email protected] if that is necessary. Personal choice really. I go for the format jabber.domain.com

  • Sup mail client and html mail - run-mailcap script now in aur

    Hi,
    For the users of sup mail client. Standard sup installation requires a script called run-mailcap to open html (and other mime) attachments. I couldn't find this script in any arch repos so I made a package for aur. This package downloads a deb file from ubuntu repositories and extracts just this one script (run-mailcap). This should make life a bit easier for early sup users.
    Unfortunately the package requires deb2targz since I don't know how to extract just one file from a deb without this script. If this can be done in a better way, please let me know. For now deb2targz is just a makedep, you can remove it after installation.
    Enjoy

    kosmiciatakuja wrote:Unfortunately the package requires deb2targz since I don't know how to extract just one file from a deb without this script. If this can be done in a better way, please let me know. For now deb2targz is just a makedep, you can remove it after installation.
    For future reference, bsdtar can break open .deb files (and .rpm files for that matter) and bsdtar will be found on every Arch system since it is part of the libarchive package and pacman itself depends on libarchive. I use bsdtar in this way in the opera-devel PKGBUILD. I added libarchive to my makedepends, though arguably this isn't really needed unless pacman is likely to stop depending on libarchive any time soon.
    With this in mind I do wonder why people install tools like deb2targz or rpm2cpio on Arch when it is already possible to pull apart these files with a pre-installed tool. Perhaps people are just unaware of this?
    P.S. Even without bsdtar, .deb files are just 'ar' archives with three files inside: debian-binary (which states the deb format version number), control.tar.gz (packaging meta-information) and data.tar (the actual installable files, optionally compressed with gzip, bzip2 or lzma). As such you can alternatively use the 'ar' command to extract data.tar and then get the raw files by extracting from that with (GNU) tar in turn. It is worth noting that 'ar' is included as part of the GNU binutils package, so pretty much guaranteed to be present on any system that is used for repackaging.

  • I don't understand, do you?

    I don't understand what is wrong with this program. I am getting 10 error but don't know why? Do you know what is wrong with it? Please let me know.
    Thanks.
    import java.awt.*;
    import java.io.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.StringTokenizer;
    import java.text.DecimalFormat;
    public class Frame1 extends JFrame
    Cars carList = new Cars();
    JLabel
    lblCustomerID = new JLabel("ID"),
    lblCustomerFirstName = new JLabel("Firstname"),
    lblCustomerSurname = new JLabel("Surname"),
    lblCarModel = new JLabel("Car Model"),
    lblColour = new JLabel("Color"),
    lblNumberSeats = new JLabel("Number of Seats"),
    lblPetrol = new JLabel("Petrol"),
    lblEngineSize = new JLabel("Engine Size"),
    lblAutomatic = new JLabel("Automatic"),
    lblHatchBack = new JLabel("Hatch Back"),     
    lblSunRoof = new JLabel("Sun Roof"),
    lblDoors = new JLabel("Doors"),      
    lblDailyRate = new JLabel("Daily Rate"),
    lblDateOut = new JLabel("Expired"),
    lblDateDue = new JLabel("Date Due"),
    lblDateReturned = new JLabel("Will be Returned"),
    lblDailyRentalCost = new JLabel("Daily Rental Cost");
    JTextField
    txtCustomerID = new JTextField("!!!"),
    txtCustomerFirstName = new JTextField("!!!"),
    txtCustomerSurname = new JTextField("!!!"),
    txtDateOut = new JTextField("!!!"),
    txtDateDue = new JTextField("!!!"),
    txtDateReturned = new JTextField("!!!"),
    txtDoors = new JTextField("!!!"),
    txtEngineSize = new JTextField("!!!"),
    txtCarModel = new JTextField("!!!"),
    txtColour = new JTextField("!!!"),
    txtNumberSeats = new JTextField("!!!"),
    txtDailyRentalCost = new JTextField("!!!"),
    txtDailyRate = new JTextField("!!!");
    JCheckBox
    chkHatchBack = new JCheckBox("Hatc Back"),
    chkPetrol = new JCheckBox("Petrol"),
    chkSunRoof = new JCheckBox("SunRoof"),
    chkAutomatic = new JCheckBox("Automatic"),
    chkAirConditioning = new JCheckBox("Air Conditioning");
    JButton
    btnLast = new JButton("Last"),
    btnPrevious = new JButton("back"),
    btnFirst = new JButton("First"),
    btnNext = new JButton("Next");
    JPanel
    CarPanel = new JPanel(),
    NavigationPanel = new JPanel();
    private static int
    record_update = 0,
    update = 0;
    private static DecimalFormat
    pounds = new DecimalFormat("�#,##0.00"),
    dp1 = new DecimalFormat("#,##0.0");
    public CarFrame() throws IOException
    super("Renting Database");
    addWindowListener(new WindowAdapter()
    public void windowClosing(WindowEvent e)
    dispose();
    System.exit(0);
    setBounds(200, 200, 500, 500);
    CarPanel.setLayout(new GridLayout(20,4));
    CarPanel.add(lblDateOut); CarPanel.add(txtDateOut);
    CarPanel.add(lblDateDue); CarPanel.add(txtDateDue);
    CarPanel.add(lblDateReturned); CarPanel.add(txtDateReturned);
    CarPanel.add(lblCustomerID); CarPanel.add(txtCustomerID);
    CarPanel.add(lblCustomerSurname); CarPanel.add(txtCustomerSurname);
    CarPanel.add(lblCustomerFirstName); CarPanel.add(txtCustomerFirstName);
    CarPanel.add(lblDailyRentalCost); CarPanel.add(txtDailyRentalCost);
    CarPanel.add(lblCarModel); CarPanel.add(txtCarModel);
    CarPanel.add(lblColour); CarPanel.add(txtColour);
    CarPanel.add(lblNumberSeats); CarPanel.add(txtNumberSeats);
    CarPanel.add(lblDailyRate); CarPanel.add(txtDailyRate);
    CarPanel.add(lblEngineSize); CarPanel.add(txtEngineSize);
    CarPanel.add(lblAutomatic); CarPanel.add(chkAutomatic);
    CarPanel.add(lblSunRoof); CarPanel.add(chkSunRoof);
    CarPanel.add(lblPetrol); CarPanel.add(chkPetrol);
    CarPanel.add(lblDoors); CarPanel.add(txtDoors);
    CarPanel.add(lblHatchBack); CarPanel.add(chkHatchBack);
    NavigationPanel.add(btnFirst);
    NavigationPanel.add(btnPrevious);
    NavigationPanel.add(btnNext);
    NavigationPanel.add(btnLast);
    this.getContentPane().add(CarPanel, BorderLayout.CENTER);
    this.getContentPane().add(NavigationPanel, BorderLayout.SOUTH);
    btnFirst.addActionListener(new ALbtnFirst());
    btnPrevious.addActionListener(new ALbtnPrevious());
    btnNext.addActionListener(new ALbtnNext());
    btnLast.addActionListener(new ALbtnLast());
    update = 0;
    showCarRecord(update);
    private void showCarRecord(int record)
    Car
    c = new Car();      
    c = (Car) carList.get(record);
    txtColour.setText(c.getColour());
    txtNumberSeats.setText(""+c.getNumberSeats());
    txtDailyRate.setText(pounds.format(c.getDailyRate()));
    txtEngineSize.setText(""+c.getEngineSize());
    chkAutomatic.setSelected(c.getAutomatic());
    chkSunRoof.setSelected(c.getSunRoof());
    chkPetrol.setSelected(c.getPetrol());
    txtDoors.setText(""+c.getDoors());
    class ALbtnFirst implements ActionListener
    public void actionPerformed(ActionEvent e)
    update = 0;
    showCarRecord(update);
    class ALbtnPrevious implements ActionListener
    public void actionPerformed(ActionEvent e)
    if (update > 0)
    update--;
    showCarRecord(update);
    else
    JOptionPane.showMessageDialog(null,"No More Records");
    class ALbtnNext implements ActionListener
    public void actionPerformed(ActionEvent e)
    if (update < (carList.size()-1) )
    update++;
    showCarRecord(update);
    else
    JOptionPane.showMessageDialog(null,"No More Records");
    class ALbtnLast implements ActionListener
    public void actionPerformed(ActionEvent e)
    uppdate = record_update -1;
    showCarRecord(update);

    OK. There you are the Cars class.
    I hope that can help
    import java.util.*;
    import java.io.*;
    public class Car extends Vehicle implements Serializable
         private boolean
              mHatchBack;
         private int
         mDoors;
         Car()
         super();
         setDoors(0);
         setHatchBack(false);
    Car(int numberSeats,String name, String registration, String color,
    boolean sunRoof,double dailyRate, double engineSize, boolean automatic,
    boolean petrol, int doors, boolean hatchBack);
    super(numberSeats,name, registration, color, sunRoof,
         dailyRate,engineSize,automatic, petrol, airConditioning);
         setDoors(doors);
         setHatchBack(hatchBack);
    public boolean getHatchBack()
         return mHatchBack;
    public void setHatchBack(boolean hatchBack)
         mHatchBack = hatchBack;
    public int getDoors()
    return mDoors;
    public void setDoors(int doors)
    mDoors = doors;

  • I can't don't understand code in netbean and it's about Jframe.

    i use netbean to design 2 jframe with some buttons on both frame.
    frame1 is login form, frame2 is mainform. i want to show loginform then click the button1 to show 2nd jframe.
    then i click exit on 2nd jframe and it come back to loginform(frame1).
    i do alot of search on the google and here. i know the basic to show a jframe using
    setVisible or .show() .hide(), etc..
    the problem is what is my jframe variable name in netbean?
    i know i can create an jframe object
    such as: JFrame frame1 = new JFrame(); etc.. (it's ok if the syntax is wrong for now).
    When i use netbean, i drag the Gui components to the Jframe. The jframe is generated by netbean automatically.
    When the main program runs, it calls main() method, follow by :
    public void run() {
    new LoginForm().setVisible(true);
    new LoginForm().setVisible <--- setVisible(true) means show the form.
    and is new LoginForm() create an object from LoginForm class.
    public LoginForm() {
    initComponents();
    When it create a new object, it runs default constructor and calls iniComponoents and finally show the jframe.
    my question is when you create object, you usually declare variable and use variable to hold reference to the object.
    that's why i don't understand how it works here.
    it only create news object, bu no variable to holding it. how do i control this Jframe to show and hide without a reference variable????????????
    Edited by: roadorange on Feb 29, 2008 10:08 PM

    roadorange wrote:
    Encephalopathic . thank your reply so much. your reply is fast. i love it and love this forum.. LOLyou're welcome
    i tried hand-written code, and it looks just fine when design few buttons, labels and textfields.
    The adjustment of buttons(labels) are not that good on the frame.
    However, when you use IDE, you can drag the button on any spot you like in the jframe.... and in the process not learn how Swing works, and lose flexibility and power. Sorry to sound conceited, but I'll match any of your netbeans-created GUI's with one of my own, and mine will likely be better -- and I'm not all that good at this just yet.
    Much luck.

  • I don't understand what's happening with my Music. All the songs that I purchased, that were previously on my phone, now show up a Cloud next to them, but I can't play them. If I touch the Cloud, it turns into a red square but never downloads.

    I don't understand what's happening with my Music. All the songs that I purchased, that were previously on my phone, now show up with a Cloud next to them, but I can't play them. If I touch the Cloud, it turns into a red square, acts like it's downloading (which I can see happening in iTunes), but never downloads. The Cloud just stays there.
    I've sync'd my phone, I've turned it to "show all music" in Settings, I've drag and dropped the songs/albums onto my phone again. I feel like I've tried everything I've seen recommended, but nothing works.
    I've purchased a lot of music from iTunes. It should be there. What's going on?
    P.S. Same thing happening with my purchased books. Ugh.

    Once you successfully add you iTunes library to iTunes Match, you go to Settings>iTunes & App Store on your iOS device and turn on iTunes Match.  Your iTunes Match library will then appear on your iOS device.

  • When we try to buy a new app or update our existing apps, my account settings wont allow me to enter ANY of my credit cards.  It says to contact apple/itunes/support, but when I do, I don't understand how to navigate it to find an answer.  Help!

    when we try to buy a new app or update our existing apps, my account settings wont allow me to enter ANY of my credit cards.  It says to contact apple/itunes/support, but when I do, I don't understand how to navigate it to find an answer.  Help!

    Click here and ask the iTunes Store staff for assistance.
    (108048)

  • Which Mac Pro? More cores=slower speeds? And most of us know the speed matters or FPU for music and I don't understand the faster is for the least amount of procs. And while I get the whole rendering thing and why it makes sense.

    Which Mac Pro? More cores=slower speeds? And most of us know the speed matters or FPU for music and I don't understand the faster is for the least amount of procs. And while I get the whole rendering thing and why it makes sense.
    The above is what the bar says. It's been a while and wondered, maybe Apple changed the format for forums. Then got this nice big blank canvas to air my concerns. Went to school for Computer Science, BSEE, even worked at Analog Devices in Newton Massachusetts, where they make something for apple. 
    The bottom line is fast CPU = more FPU = more headroom and still can't figure out why the more cores= the slower it gets unless it's to get us in to a 6 core then come out with faster cores down the road or a newer Mac that uses the GPU. Also. Few. I'm the guy who said a few years ago Mac has an FCP that looks like iMovie on Steroids. Having said that I called the campus one day to ask them something and while I used to work for Apple, I think she thought I still did as she asked me, "HOW ARE THE 32 CORES/1DYE COMING ALONG? Not wanting to embarrass her I said fine, fine and then hung up.  Makes the most sense as I never quite got the 2,6,12 cores when for years everything from memory to CPU's have been, in sets of 2 to the 2nd power.  2,4,8,16,32,64,120,256,512, 1024, 2048,4196,8192, 72,768.  Wow. W-O-W and will be using whatever I get with Apollo Quad. 
    Peace to all and hope someone can point us in THE RIGHT DIRECTION.  THANK YOU

    Thanks for your reply via email/msg. He wrote:
    If you are interested in the actual design data for the Xeon processor, go to the Intel site and the actual CPU part numbers are:
    Xeon 4 core - E5.1620v2
    Xeon 6 core - E5.1650v2
    Xeon 8 core - E5.1680v2
    Xeon 12 core - E5.2697v2
    I read that the CPU is easy to swap out but am sure something goes wrong at a certain point - even if solderedon they make material to absorb the solder, making your work area VERY clean.
    My Question now is this, get an 8 core, then replace with 2 3.7 QUAD CHIPS, what would happen?
    I also noticed that the 8 core Mac Pro is 3.0 when in fact they do have a 3.4 8 core chip, so 2 =16? Or if correct, wouldn't you be able to replace a QUAD CHIP WITH THAT?  I;M SURE THEY ARE UO TO SOMETHING AS 1) WE HAVE SEEN NO AUDIO FPU OR PERHAPS I SHOULD CHECK OUT PC MAKERS WINDOWS machines for Sisoft Sandra "B-E-N-C-H-M-A-R-K-S" -
    SOMETHINGS UP AND AM SURE WE'LL ALL BE PLEASED, AS the mac pro      was announced Last year, barely made the December mark, then pushed to January, then February and now April.
    Would rather wait and have it done correct than released to early only to have it benchmarked in audio and found to be slower in a few areas- - - the logical part of my brain is wondering what else I would have to swap out as I am sure it would run, and fine for a while, then, poof....
    PEACE===AM SURE APPLE WILL BLOW US AWAY - they have to figure out how to increase the power for 150 watts or make the GPU work which in regard to FPU, I thought was NVIDIA?

  • Generate Report From Template (Excel).vi & don't understand to fill the cells

    I am trying to use the Generate Report From Template (Excel).vi to build my own template, and then fill it with some of my datas. I am trying to replace the "temperature" or "pressure" labels by others, and then fill them with my vi. I don't understand how labview find the location of the labels in the excel template.
    Thanks in advance
    Attachments:
    Excel_Template.xls ‏33 KB
    Generate_Report_From_Template_(Excel).vi ‏120 KB

    You can get the answer to your question by reading the following thread:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=137&HOID=50650000000500000019360100&HTHREAD=000079385000079477000079498000079542000079632&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0
    The short answer:
    To setup or modify the Named Labels in your Excel template, use Excel's Insert -> Name -> Define command. A name can be defined as a single cell or a block of cells.
    Michael Munroe
    Certified LabVIEW Developer
    www.abcdefirm.com
    Michael Munroe, ABCDEF
    Certified LabVIEW Developer, MCP
    Find and fix bad VI Properties with Property Inspector

  • 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.

Maybe you are looking for

  • Install of SuSE Linux 9.0 freezes early on

    I recently upgraded to an MSI 865PE Neo2 motherboard, with a P4 2.8 GHz processor.  I've installed Windows XP Professional without difficulty, but I tried to install SuSE Linux 9.0 and it locks up early on in the boot process during "hardware detecti

  • Group by week between date range

    Hi, i'm having a table for documents. The documents are received from diffeent dates. I've to calculate number of documents received on weekly basis. I need an sql to count the number of documents between two given dates grouping by weekly. My week s

  • Macmini to blue g3

    My friend has an intel mac mini and a blue g3 tower. How can he connect the to the G3 tower and use the hard drive as a backup for iPhoto? Thanks!

  • Print MS Word document in background

    Hi gurus, Is it possible to print Word document in background using ABAP? If yes, which function module could be used? Thanks in advance, Franck

  • Exchange rate diff.accts are not defined for account 16138579 currency INR

    The following message is coming,while trying to clear vendor account of capital services.Exchange rate diff.accts are not defined for account 16138579 currency INR Please help us to resolve the issue.