How do i get the width of a JPanel

Hey
Im trying to get the width of my JPanel with this code, but it just prints 0, what am i doing wrong?
public class GamePanel extends JPanel implements Runnable {
     private static final int PWIDTH = 500;   // size of panel
     private static final int PHEIGHT = 400;
     private static final int NO_DELAYS_PER_YIELD = 16;     
     private static int MAX_FRAME_SKIPS = 5;
     private MovingGame frame;
     private Thread animator;
     private volatile boolean running = false;   // used to stop the animation thread
     private long gameStartTime;   // when the game started
     private BallSprite ball;
     //      off-screen rendering
     private Graphics dbg;
     private Image dbImage = null;
     //      holds the background image
     private BufferedImage bgImage = null;
     public GamePanel(MovingGame frame){     
          this.frame = frame;
          setDoubleBuffered(true);
          setBackground(Color.blue);
          setPreferredSize( new Dimension(PWIDTH, PHEIGHT));
          setFocusable(true);
          requestFocus();
          addKeyListener( new KeyAdapter() {
               public void keyPressed(KeyEvent e)
                   { processKey(e);  }
          ball = new BallSprite(40, 40, this);
          System.out.println("Width: " + getWidth());    <------- this prints 0
     }

veldhanas wrote:
Hi,
Use
setSize(PWIDTH, PHEIGHT); instead of
setPreferredSize( new Dimension(PWIDTH, PHEIGHT));ThanksWrong Wrong Wrong Wrong
.setSize() sets the size of the component at that instant in time and has no effect on anything the layout managers do with the component. .setPreferredSize() sets the size the layout manager will look at (assuming it cares about what size you want the component at).

Similar Messages

  • How do you define the width of a JPanel?

    How do you define the width of a JPanel?

    it may not be perfect but this is what i have tried:
    import javax.swing.*;
    import java.awt.event.*;
    public class myPane extends JFrame {
         public myPane() {
              super("myPane");
              setDefaultCloseOperation.(JFrame.EXIT_ON_CLOSE);
              JButton myButt = new JButton("press");
              JPanel pane = new JPanel();
              pane.add(myButt);
              setContentPane(pane);
         public static void main(String args[]) {
              myPane p1 = new myPane();
              p1.setBounds(20, 20, 600, 400);
              p1.setVisible(true);
    }

  • How can I get the width of window?

    Hi. I would like to get the width of window on IE.
    If on Netscape, I can use "window.inner(outer)Width".
    However, I don't know what to do with IE.
    I am sorry that this question might be very begginer.
    Thank you,

    and this is not a question taht in belongs in this forum! it is a IE/IE.Script question. perhaps you find an answer here: http://developer.irt.org/script/window.htm

  • How do I get the width of message I'm composing to not get too wide?

    When writing a message, it used to automatically return when it was as wide as the message. Now it just keeps getting wider and wider. How can I fix this?

    Maybe you have switched from composing in plain text to composing in HTML? In HTML the message text only goes to a new line when you give an enter. Otherwise it wraps at the tight side of the window. It will probably display the same way on the receiver's computer, depending on the width of his screen.
    You can try to see if this causes your problem, by holding the Shift key before clicking the Compose button, to start composing in the alternate way (e.g. in plain text instead of HTML).
    If you prefer plain text, you can change the configuration under Tools -> Account Settings -> [account] -> Composition & Addressing and toggle the preference Compose messages in HTML format.
    Note that this is a setting per account, and for news accounts it defaults to plain text...

  • Please Help!! How to get the width of the String for print out?

    Hi there,
    I need to do some printing in my application. I just want to know how can I get the width of the string when it is printed on the paper.
    I have tried to use the following code to get the width
    Rectangle2D rec = font.getStringBounds(str, new FontRenderContext(null, true, true));
    double width = rec.getWidth();
    however, the width I got from that function is not correct (the returned width is longer than the printed one)
    Does anyone know how to solve this problem?
    Thank you and Happy New Year !

    hi,
    The getFontMetrics(Font) is also defined in the Component class and therefore you can retrieve it even if you dont override the paint method.
    try the following (provided ur code extends some class that extends Component indirectly)
    FontMetrics f = this.getFontMetrics(this.getFont());
    int width = f.stringWidth(str); //str is the String for which u need to check the width.
    hope this was useful
    happy holidayz

  • How can I get the image width and height stored in database?

    Hi!I write s servlet to display images store in database.but how can I get the image width and height?

    Have you tryed using PJA or a similar library?
    I presume you get java.lang.NoClassDefFoundError on the line :
    Toolkit.getDefaultToolkit();?

  • How many ways are there to get the Width/Height of an image ?

    I am currently using the following code to get the width and hight of an image :
    BufferedImage Buffered_Image=ImageIO.read(new File(Image_Path));
    int Image_Width=Buffered_Image.getWidth();
    int Image_Height=Buffered_Image.getHeight();I don't need to get the image (*.jpg, *.gif, *.png), just want to know it's dimensions. I wonder how many other ways are available to do the same thing in a Java application ?
    Frank

    Ni_Min wrote:
    That's what I thought. I am asking because I hit a wall and am trying to find a different approach.Yeah, if you only have one file type you can probably write the code to read the header in 20 min.
    I packed my programs into an executable Jar file which I can run and access images on my C:\ drive, everything worked fine until I tried to experiment with something new. I know that I can force JVM to pre-load all my java classes just after it starts, so I deleted the jar right after the program pre-loaded all my classes and tried to see if it would work, but now I get a null pointer error when it tried to get the width/height of an existing image, because ImageIO.read return null. ( The same image is still on my C:\ drive )Sounds like a strange thing you're doing here. What's the point of this?
    So I wonder why it makes a difference after I deleted the jar, what was the problem ( or do I need to pre-load another class related to ImageIO.read ? ), and maybe if I use something else other than the ImageIO.read to get the width/height, I can bypass the problem.I dunno why you need to do this preload stuff and/or delete anything. I'd say leave the JVM and the app alone if possible.

  • How to get the width of a numeric field at runtime

    Hi, everyone :D
    Is there a built-in that let me get the width of a numeric field at runtime? The SRW bulit in only has the SWR.GET_PAGE_NUM built-in. Is there something like the Get_item_property of Forms IN Report?
    Thanks
    Edited by: user12422762 on 07-ene-2010 14:16
    Edited by: user12422762 on 07-ene-2010 14:30
    Edited by: user12422762 on 08-ene-2010 4:40
    Edited by: user12422762 on 08-ene-2010 4:50

    Hi. Thanks for answering. I need the width because i want to set the format of the field at runtime. The quantity of decimal digits for all the numeric fieds in the report is received as a parameter.
    I can use a function to create the respective decimal mask ('D99,'D999',etc.) and then call the SRW.SET_FORMAT_MASK in the format trigger of every single field, but i'd have to type the mask of the integral part of the number in the code of the trigger ('99G999D99, '999G999G999D'). However, If i could get the width, i'd just create a function and call it from every format trigger.
    Edited by: user12422762 on 08-ene-2010 10:05
    Edited by: user12422762 on 08-ene-2010 10:06
    Edited by: user12422762 on 08-ene-2010 10:08

  • How to get the width and height of the selected rectangle

    Hi,
         I need to get the width and height of the selected rectangle in indesign cs3 and display the values in a dialog box for user verification.
    Regards,
    saran

    Hi Saran,
    InterfacePtr<IGeometry> itemGeo ( objectUIDRef, UseDefaultIID() );
    PMRect ItemCoord = itemGeo->GetStrokeBoundingBox();
    PMReal width  = ItemCoord->Width();
    PMReal height = ItemCoord->Height();

  • Made a drop down menu. How can I get the drop down to fade in and out? !

    Hi guys!
    I've created a drop down menu (with the help of you legends on here! )...Now I just need it to animate so when the user hovers over the main menu item, the drop down fades in.
    Here's the HTML I have...
        <ul id="nav">
            <li><a href="#">Nav 1</a></li>
            <li><a href="#">Nav 2</a></li>
            <li><a href="#">Nav 3</a>
                <ul>
                    <li><a href="#">&raquo; Sub Menu 1</a></li>
                    <li><a href="#">&raquo; Sub Menu 2</a></li>
                    <li><a href="#">&raquo; Sub Menu 3</a></li>
                    <li><a href="#">&raquo; Sub Menu 4</a></li>
                </ul>
            </li>
            <li><a href="#">Nav 5</a></li>
            <li><a href="#">Nav 6</a></li>
        </ul>
    ...and here's my CSS...
    ul#nav {width:920px; height:35px; list-style:none; padding:0; margin:0; background:url(navBg.jpg) repeat-x; z-index:999;}
    ul#nav li a:hover, #nav li a:active {background:url(navOn.jpg) repeat-x; text-decoration:none;}
    ul#nav li a {color:#E0E2E7; display:inline-block; float:left; margin:0; padding:10px 19px; width:auto; text-decoration:none;}
    * html #nav li {display:inline; float:left; }  /* for IE 6 */
    * + html #nav li {display:inline; float:left; }  /* for IE 7 */
    #nav ul {width:208px; left:-9999em; list-style:none; margin:35px 0; padding:0; position:absolute; z-index:999;}
    #nav li:hover ul {left:auto;}
    #nav li {float:left;}
    #nav li li a {width:190px; background-color:#efefef; color:#2e2e2e; padding:8px; margin:0; }
    #nav li li a:hover {background-color:#000; background-image:none; color:#FFF;}
    #nav li:hover {background:url(assets/images/frame/navOn.jpg);}
    From what I can make out, I assume I need either Javascript or JQuery...
    Does anyone know how I can get the drop down to fade in and out?
    Thank you very much and I hope to hear from you.
    SM

    Yes, you'll need a client-side script to do fade-in/fade-out fx.  Look at jQuery Superfish.
    http://users.tpg.com.au/j_birch/plugins/superfish/#examples
    Nancy O.

  • ADF and JQuery: How can I get the data back to server listener.

    Jdeveloper 11g Version 11.1.1.2.0
    I use Jquery to draw the signature. How can I get the svgOutput back to my server listener.???
    e.getSource give me the error e.getSource is not function.
    Both of function saveSignatureCapture(which calling from ADF button) and $('#save-output').click(function (event) can not send the the data back to my server listener.
    Thanks.
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="dSignature" title="Signature Capture">
          <af:resource type="javascript" source="../resources/lib/jquery/jquery-1.4.2.min.js"/>
          <af:resource type="javascript" source="../resources/js/jquery.drawbox.js"/>
          <af:resource type="javascript">
            var svgOutput = '';
            function saveSignatureCapture(e) {
                var signatureText = $('#drawbox-data').val();
                var source = e.getSource();
                var type = 'saveSignatureCapture_ServerListener';
                var immediate = true;
                var params = {
                    signatureText : signatureText
                AdfCustomEvent.queue(source, type, params, immediate);
            function beginSignatureCapture(e) {
                $('#drawbox').drawbox( {
                    caption : 'This is a caption', lineWidth : 3, lineCap : 'round', lineJoin : 'round', colorSelector : true
                $('#view-output').click(function () {
                    svgOutput = window.open('data:image/svg+xml,' + $('#drawbox-data').val());
                    svgOutput.document.close();
                    return false;
                $('#save-output').click(function (event) {
                    var signatureText = $('#drawbox-data').val();
                    var source = $(document);
                    var type = "saveSignatureCapture_ServerListener";
                    var immediate = true;
                    var params = {
                        signatureText : signatureText
                    AdfCustomEvent.queue(source, type, params, immediate);
                    return false;
            $(document).ready(beginSignatureCapture);
          </af:resource>
          <af:panelStretchLayout id="psSignature">
            <f:facet name="bottom"/>
            <f:facet name="center">
              <af:panelGroupLayout id="pgSignature" layout="vertical">
                <f:verbatim>
                  <div id="divSignature">
                    <canvas id="drawbox" width="600" height="200">
                      <p>Your browser does not support &lt;canvas&gt;</p>
                    </canvas>
                  </div>
                  <br/>
                  <br/>
                  <a href="#" id="view-output">View Rendered SVG Output</a>
                  <br/>
                  <br/>
                  <a href="#" id="save-output">Save Signature</a>
                </f:verbatim>
                <af:spacer width="10" height="10" id="s10"/>
                <af:panelGroupLayout id="pghl14" layout="horizontal" halign="center">
                  <af:commandButton text="Save Signature" id="cbSaveSignatureButtonId" partialSubmit="true">
                    <af:clientListener method="saveSignatureCapture" type="click"/>
                    <af:serverListener type="saveSignatureCapture_ServerListener"
                                       method="#{backingBeanScope.mainBackingBean.saveSignatureCapture_ServerListener}"/>
                  </af:commandButton>
                </af:panelGroupLayout>
              </af:panelGroupLayout>
            </f:facet>
            <f:facet name="start"/>
            <f:facet name="end"/>
            <f:facet name="top"/>
          </af:panelStretchLayout>
        </af:document>
      </f:view>
    </jsp:root>Edited by: user553450 on Sep 17, 2010 4:02 PM
    Edited by: user553450 on Sep 17, 2010 4:13 PM

    Hi Frank,
    Thank you so much for your advice, I got lot of knowledge from your book and articles since I am in transition from forms to JDeveloper.
    By surrounding <af:panelStretchLayout id="psSignature"> with <af:form id="f1">
    Now the following code is work on Firefox, everything fine, I can get the data back and call my server listener as I expected.
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1" title="Signature Capture">
          <af:resource type="javaScript" source="../resources/js/excanvas.js"/>
          <af:resource type="javascript" source="../resources/lib/jquery/jquery-1.4.2.min.js"/>
          <af:resource type="javascript" source="../resources/js/jquery.drawbox.js"/>
          <af:resource type="javascript">
            function saveSignatureCapture(e) {
                var signatureText = $('#drawbox-data').val();
                alert(signatureText);
                var source = e.getSource();
                var type = 'saveSignatureCapture_ServerListener';
                var immediate = true;
                var params = {
                    signatureText : signatureText
                AdfCustomEvent.queue(source, type, params, immediate);
            function beginSignatureCapture(e) {
                var cmd = "$('#drawbox').drawbox({lineWidth:3,lineCap:'round',lineJoin:'round',colorSelector:true});";
                if (navigator.userAgent.indexOf('MSIE') !=  - 1) {
                    setTimeout(cmd, 1000);
                else {
                    $('#drawbox').drawbox( {
                        caption : 'This is a caption', lineWidth : 3, lineCap : 'round', lineJoin : 'round', colorSelector : true
          </af:resource>
          <af:form id="f1">
            <af:panelStretchLayout id="psSignature">
              <f:facet name="bottom"/>
              <f:facet name="center">
                <af:panelGroupLayout id="pgSignature" layout="vertical">
                  <f:verbatim>
                    <canvas id="drawbox" width="600" height="200">
                      <p>Your browser does not support &lt;canvas&gt;</p>
                    </canvas>
                  </f:verbatim>
                  <af:spacer width="10" height="10" id="s10"/>
                  <af:panelGroupLayout id="pghl14" layout="horizontal" halign="center">
                    <af:commandButton text="Save Signature" id="cbSaveSignatureButtonId" partialSubmit="true">
                      <af:clientListener method="saveSignatureCapture" type="click"/>
                      <af:serverListener type="saveSignatureCapture_ServerListener"
                                         method="#{backingBeanScope.mainBackingBean.saveSignatureCapture_ServerListener}"/>
                    </af:commandButton>
                  </af:panelGroupLayout>
                </af:panelGroupLayout>
              </f:facet>
              <f:facet name="start"/>
              <f:facet name="end"/>
              <f:facet name="top"/>
            </af:panelStretchLayout>
          </af:form>
          <af:clientListener method="beginSignatureCapture" type="load"/>
        </af:document>
      </f:view>
    </jsp:root> However, I got the error following error when I run the page from IE8.
    Assertion failed: Incorrect use of AdfRichUIPeer.GetDomNodeForCommentComponent.AdfRichCommandButton[oracle.adf.RichCommandButton] id=cbSaveSignatureButtonId StackTrace:function(x217)[AdfRichCommandButton[oracle.adf.RichCommandButtonId]..........
    FYI, the following simple testing code has the similar error in IE8 too (not for Firefox).
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1">
          <af:resource type="javaScript" source="../resources/js/excanvas.js"/>
          <af:form id="f1">
            <f:verbatim>
              <canvas id="drawbox" width="600" height="200">
                <p>Your browser does not support &lt;canvas&gt;</p>
              </canvas>
            </f:verbatim>
          </af:form>
        </af:document>
      </f:view>
    </jsp:root>The error is: Assertion failed: Incorrect use of AdfRichUIPeer.GetDomNodeForCommentComponent.AdfRichDialog[oracle.adf.RichDialog] id:::msgDlg StackTrace function(x217).......
    Your advice is very much appreciated.

  • How can I get the resolution of an image file in JSP?

    how can I get the resolution of an image file like jpg,gif,png in JSP ?

    Hii,
    If by the resolution, u mean size..this is how u can come to know....
    String add = "path/to/some.jpeg";
    javax.swing.ImageIcon chain = new javax.swing.ImageIcon(add);
    int height = chain.getIconHeight();
    int width = chain.getIconWidth();
    Hope that helps.
    regards
                   

  • I am having macbook air recently my iphotos did not open and was showing report apple and reopen but i came to know that by pressing alt and iphotos i open an new photo library and stored the pics but now how can i get the pics which i had in the earlier

    i am having macbook air recently my iphotos did not open and was showing report apple and reopen but i came to know that by pressing alt and iphotos i open an new photo library and stored the pics but now how can i get the pics which i had in the earlier photo please help me to recover my photos

    Well I'll guess you're using iPhoto 11:
    Option 1
    Back Up and try rebuild the library: hold down the command and option (or alt) keys while launching iPhoto. Use the resulting dialogue to rebuild. Choose to Repair Database. If that doesn't help, then try again, this time using Rebuild Database.
    If that fails:
    Option 2
    Download iPhoto Library Manager and use its rebuild function. (In early versions of Library Manager it's the File -> Rebuild command. In later versions it's under the Library menu.)
    This will create an entirely new library. It will then copy (or try to) your photos and all the associated metadata and versions to this new Library, and arrange it as close as it can to what you had in the damaged Library. It does this based on information it finds in the iPhoto sharing mechanism - but that means that things not shared won't be there, so no slideshows, books or calendars, for instance - but it should get all your events, albums and keywords, faces and places back.
    Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one.  
    Regards
    TD

  • How can i get the all values from the Property file to Hashtable?

    how can i get the all values from the Property file to Hashtable?
    ok,consider my property file name is pro.PROPERTIES
    and it contain
    8326=sun developer
    4306=sun java developer
    3943=java developer
    how can i get the all keys & values from the pro.PROPERTIES to hashtable
    plz help guys..............

    The Properties class is already a subclass of Hashtable. So if you have a Properties object, you already have a Hashtable. So all you need to do is the first part of that:Properties props = new Properties();
    InputStream is = new FileInputStream("tivoli.properties");
    props.load(is);

  • I accidentally erased a music album that I purchased on iTunes. How can I get the iTunes store to recognize that it is no longer in my iTunes library and download it again?

    I accidentally erased a music album that I purchased on iTunes. How can I get the iTunes store to recognize that it is no longer in my iTunes library and download it again?

    Delete the broken links in iTunes then look at your purchased list to redownload.
    If this happened because you were deleting files from the iTunes folder in Finder, don't.  You have to let iTunes do all the deleting and moving or you will end up with broken links.

Maybe you are looking for

  • Update ipad2 3G US Version from IOS 4.1.1 to IOS 6.0.1, ipad2 can't activate with itunes or wifi .

    Dear ,        when I update ipad2 3G US Version from IOS 4.1.1 to IOS 6.0.1, ipad2 can't activate with itunes or wifi . A friend of me buy the ipad in USA and bring it to China.        ipad2 NO: DLXFJN74DFJ1. I'm live in China now .        How can i

  • How to add order reason code field to selection screen of VL10

    Hi,    How to add Order reason code(vbak-augru) to the selection screen of VL10.   1. How to find enhancement for it?    2.I want to display Order reason code field on output list also?   3.Pls give steps i am new to enhancements thanking u advance..

  • Toplink10g in Applet

    Hi, I'm trying to deploy an Applet(built with Toplink10g) to a OC4J Standalone Server. If it works, I want to deploy this Applet on an available 9iAS. The Applet was developed with JDeveloper and works there. Deploying it to an running OC4J Server vi

  • HANA Live Authorization Assistant

    Hi Everyone, I have a question regarding HANA Live Authorization Assistant As mentioned in the help.sap.com. https://help.sap.com/saphelp_hba/helpdata/en/da/28a39e975f4e85a5eb69d20b5668de/frameset.htm For a selected SAP NetWeaver ABAP user, SAP HANA

  • Build a slide show with various photos from different events?

    Is it possible to select various photos from a few different events, and then select "Create slideshow"? How do I select just the specific photos I want for the slideshow, and not load the entire event(s). Thanks!