Strange "+" opperator behaviour with byte data type.

This will complie:
byte counter = 1;
while (counter > 0)
System.out.println("Counter is " + counter);
counter ++;
}This will compile:
byte counter = 1;
byte one = 1;
while (counter > 0)
System.out.println("Counter is " + counter);
counter += one;
}This however will NOT complile:
byte counter = 1;
while (counter > 0)
System.out.println("Counter is " + counter);
counter = counter + 1;
}This also will NOT complile.
byte counter = 1;
byte one = 1;
while (counter > 0)
System.out.println("Counter is " + counter);
counter = counter + one;
}Why is that? The complier seems to have a problem with the + opperator with bytes, it gives me a "possible loss of precision" error.
P.S. I know these are "Infinite Loops" that was the point. I was pointing out to my instructor that even though these would be called "Infinite Loops" they do end at a specific and determinable point.

I don't see any point in using a byte for that
counter variable, except possibly to generate more
questions when it rolls past 127.I got my first programming experience back when there was only 64K of memory on my Commodore 64. Using a byte size larger than needed has always seemed wasteful to me; regardless that memory sizes are so roomy these days. I suppose it isn't even all that necessary on things like cell phones and PDAs any more. It is a little odd to me the way Java deals with bytes considering what it was originally intended to be used for. You'd think a programming language designed to be used on things like electric toasters and washing machines (or whatever, things that would not be expected to have much in the way of computing power or memory space) would require you to type cast when using small data types.
But as they say, "It's not for me to reason why, it's for me to do and type cast to a byte." Or something like that.

Similar Messages

  • Unsigned byte: Java byte data type (0-255)?

    I need an "unsigned" byte type.
    How can I implement a one byte data type with values from 0-255 in Java?

    No there isn't an unigned byte, but you don't need
    one. You just separate storage representation from
    calculation representation. When you store the
    "unsigned byte" you use a signed byte. When you make
    calculations on the "unsigned byte" you use an
    integer. For this you need two conversion functions,
    public static int toInt(byte b) {
    return b + 128;
    public static byte toByte(int i) {
    return (byte)(i - 128);
    }These amazing functions must be tested off course.
    public void testUnsigned(int unsgn) {
    byte bA[] = new byte[1];
    int i = unsgn;          // 0 to 255
    bA[0] = toByte(i);    // stored as -128 to 127
    int j = toInt(bA[0]); // 0 to 255
    if (i==j)
    System.out.println("Yes it works!");
    Sorry, but your code doesn't work. I also tried the byte & 0xFF and I get strange results too. 0xFF transfer to 129, which (I think, but maybe I'm wrong) should transfer to 255 (0xFF == 1111 1111, no?). After some tests, I found that "ounos" solution is the best fitted (byte < 0 ? b+256 : b)
    If you only do a (byte + 128), you'll get, for example:
    0000 0000 (should be 0) == 128
    I think that only 1 case is enough to proove that this code doesn't work... :-)

  • Check box with Boolean data type is not behaving properly

    Hi,
    I create a sample application with one entity driven view object with two attributes. One is of String data type [Value will be Y/N] and another (transient) attribute with Boolean data type. I planned to bind this boolean data type attribute to UI. I overridded the view row impl class and included setting of boolean attribute inside the setter of String attribute. Also in the getter of boolean attribute, added code to check the string attribute and return true/false based on that. Everything is working fine in application module tester. But when i test the same in view controller project in a page, it is not working. Always Check box component is not checked eventhough when i explicitly check it.
    [NOTE: I have given the control hint of Boolean attribute as check_box. Also i don't want selected/unselected entries in the page def file. That's why followed this approach]
    Have i missed out anything? Why this behaviour.
    Thanks in advance.
    Raguraman

    what is the value that is going in when u check it.. did u debug it.. is the viewRowimps setter and getter getting called.. and is it having the right value set and got.. and ur sure that ur using selectBooleanCheckBox..
    ur binding the checkbox to the transient value right??

  • DBMS_LOB.SUBSTR with NCLOB data type

    Hi ,
    When I am trying to extract part of the string from Comments column(NCLOB datatype) am facing issue.
    ORA-06502:PL/SQL Numeric or value error :Character string buffer too small
    select dbms_lob.substr(a.COMMENTS, 4000, 1),
    from VW_DETAILS a
    where a.id = 6210872
    DBMS_LOB.SUBSTR with NCLOB data type
    Table structure :
    Column_name Data_type
    Comments NCLOB
    ID NUMBER
    Regards,
    Venkat

    DBMS_LOB.SUBSTR parameter amount for CLOB/NCLOB indicates number of characters to substring, not bytes. And 4000 multi-byte characters (since you are using NCLOB) is greater than 4000 bytes which is absolute limit for VARCHAR2 in SQL.
    SY.

  • How to handle "byte" data type

    Hi,
    In web dynpro java project to consume a web service, I am unable to handle "byte" data type in binding wizard. It is not allowing to bind a element saying that "Context Attribute with Java Native Type BYTE cannot be selected". Please help me to resolve this.
    Thank you.
    Regards
    Bhanu.

    Hi
    you can define byte[] in golobal area, at the end of iview. 
    //@@begin others
    byte b1[];
      //@@end
                      IWDResource r;
           byte b[];
           InputStream inputStream;
         try {
              inputStream = r.read(true);
                int x = inputStream.read(b);
         } catch (IOException e) {
              e.printStackTrace();
    Regards
    Anup

  • How to insert data in a column with uniqueidefier data type

    Guys,
    I need insert data in a column with uniqueidefier data type, when i am trying to that getting error.
    error message says: "Conversion failed when converting from a character string to uniqueidentifier."
    I have data in table a col1,col2,col3,col4 - col3,col4 has datatype as varchar and i am updating table b columns col1,col2 with table a col3 and col4.
    Please guide how to do it.

    Hi,
    Not any String can be convert to uniqueidentifier.
    1. you have to make sure u use a value which is fir to be uniqueidentifier
    2. Use convert or cast in the insert query in order to convert the string into uniqueidentifier
    insert X ... convert(uniqueidentifier, 'string which fit to be convert to uniqueidentifier')
    Please post DDL+DML for more specific help
    DDL = Data Definition Language. In our case that is, CREATE TABLE statements for your tables and other definitions that are needed to understand your tables structure and there for let us to test and reproduce the problem in our server. Without DDL no one
    can execute any query.
    How to get DDL: Right click on the table in Object Explorer and select script table as CREATE. Post these create table scripts here.
    DML = data manipulation language is a family of queries used for manipulating the data it self like: inserting, deleting and updating data. In our case we need some sample data in order to check the query and get result, so we need some indert query for
    sample data.
    If you post a "create query" for the tables and "insert query" with some sample, then we could help you without Assuming/Guessing. There is a reason that DDL is generally asked for and expected when discussing query problems - it helps
    to identify issues, clarify terminology and prevent incorrect assumptions.  Sample data also provides a common point of reference for the discussion. A script that can be used to illustrate or reproduce the issue you have, will encourage others to help.
    [Personal Site] [Blog] [Facebook]

  • Same Input name with different data type cause the reflection exception

    I have a proxy contains couple RFCs. Two RFCs contain an argument named IN_COMPANY_CODE with data type of ZTRE_FX_BUKRSTable. Another RFC contains the same argument name of IN_COMPANY_CODE but hold different data type (String). All RFCs are in the same proxy. Complie and build the application with no issue.
    But when I ran the RFC, it generates the reflection exception below:
    Method SAPProxy1.Z_F_Tre_R_Pre_Trade_Fx can not be reflected. --> There was an error reflecting 'In_Company_Code'. > The XML element named 'IN_5fCOMPANY_--5fCODE' from namespace '' references distinct types System.String and MSTRFOREX.ZTRE_FX_BUKRSTable. Use XML attributes to specify another XML name or namespace for the element or types.
    I realize the conflict introduced by the same name with difference data type. But I would like to know if this is fixable as a bug or if there is any best practice and/or some manual intervention to make it work.

    Please install fix from OSS note 506603. After this, right-click .sapwsdl file and select "Run custom tool".

  • Call a method with complex data type from a DLL file

    Hi,
    I have a win32 API with a dll file, and I am trying to call some methods from it in the labview. To do this, I used the import library wizard, and everything is working as expected. The only problem which I have is with a method with complex data type as return type (a vector). According to this link, import library wizard can not import methods with complex data type.
    The name of this method is this:   const std::vector< BlackfinInterfaces::Count > Counts ()
    where Count is a structure defined as below:
    struct Count
       Count() : countTime(0) {}
       std::vector<unsigned long> countLines;
       time_t countTime;
    It seems that I should manually use the Call Library Function Node. How can I configure parameters for the above method?

    You cannot configure Call Library Function Node to call this function.  LabVIEW has no way to pass a C++ class such as vector to a DLL.

  • JDBC insert with XMLTYPE data type

    Hi,
    SOAP to JDBC scenario. Oracle 11G as a receiver.
    Requirement is to  insert whole xml payload message in one of Oracle table fields as a xml string. Target oracle DB table column is defined with XMLTYPE data type, it has capacity to hold xml data more than 4GB. I am using graphical mapping with direct INSERT statement.
    When I try to insert xml payload with smaller size transaction goes through. However when the xml payload size increases it is giving following error in JDBC receiver communication channel monitoring.
    Could not execute statement for table/stored proc. "TABLE_NAME" (structure "StructName") due to java.sql.SQLException: ORA-01704: string literal too long
    Here is insert statement as in communication channel monitoring. (Note: XML payload with bold characters is truncated)
    INSERT INTO  TABLE_NAME (REQ_ID, OUTAGE_OBJ, TIMESTAMP, PROCESSED_FLAG) VALUES (VAL1, <?xml version="1.0" encoding="UTF-8"?>............</>, TO_DATE(2010-11-15 10:21:52,YYYY-MM-DD HH24:MI:SS), N)
    Any suggestions to handle this requirement?
    Thank you in advance.
    Anand More.

    Hi Anand,
    The problem here is definitely the length of the SQL query. i.e "INSERT INTO ......... VALUES......."
    This is what i got when i searched for this ORACLE error code:
    ORA-01704: string literal too long
    Cause: The string literal is longer than 4000 characters.
    Action: Use a string literal of at most 4000 characters. Longer values may only be entered using bind variables.
    Please ask a ORACLE DB expert on how to handle this Also i am not sure how can we handle Bind Varibales in SAP PI.
    I hope this helps.
    Regards, Gaurav.

  • Problem with bool data type in overloading

    Please find the following error.
    I did following typedef:
    typedef bool Boolean;
    typedef signed int Sint32;
    Problem description:
    This error is occurring because Sun CC 5.9 or Solaris 9 g++ considers bool data type as signed Integer, when passed as an constructor argument. First, it is overloading the constructor with �bool� data type and when it comes the turn of �signed integer� to overload constructor, the compiler is giving an error �cannot be overloaded�. The error �redefinition� is also due to bool data type.
    Could please let me know, whether i need to add ant compiler option on Sun CC
    ERROR in g++:-
    ( /usr/local/bin/g++ -DSOLARIS_PLATFORM -DUNIX -DPEGASUS_PLATFORM_SOLARIS_SPARC_GNU -DPEGASUS_OS_SOLARIS -DPEGASUS_HAVE_TEMPLATE_SPECIALIZATION -DEXPAND_TEMPLATES -DPEGASUS_USE_EXPERIMENTAL_INTERFACES -Wno-non-template-friend -DTEST_VAI -D__EXTERN_C__ -Dregister= -D_POSIX_PTHREAD_SEMANTICS -Wno-deprecated -DAUTOPASS_DISABLED -DCLUSTER_GEN_APP -DSTAND_ALONE_INTEG -I"/TESTBUILD/p2.08.00/TESTsrc" -I/TESTBUILD/pegasus/src -I"/TESTBUILD/p2.08.00/TESTCommonLib" -O -c -o /TESTBUILD/p2.08.00/TESTobj/TESTBase.o /TESTBUILD/p2.08.00/TESTsrc/TESTBase.cpp );
    In file included from /TESTBUILD/pegasus/src/Pegasus/Common/Array.h:74,
    from /TESTBUILD/pegasus/src/Pegasus/Common/CIMName.h:40,
    from /TESTBUILD/pegasus/src/Pegasus/Client/CIMClient.h:39,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTVAIInterface.h:4,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTCaVAI.h:24,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.h:11,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.cpp:1:
    /TESTBUILD/pegasus/src/Pegasus/Common/ArrayInter.h:49: error: redefinition of `class Pegasus::Array<Pegasus::Boolean>'
    /TESTBUILD/pegasus/src/Pegasus/Common/ArrayInter.h:49: error: previous definition of `class Pegasus::Array<Pegasus::Boolean>'
    In file included from /TESTBUILD/pegasus/src/Pegasus/Common/MessageLoader.h:42,
    from /TESTBUILD/pegasus/src/Pegasus/Common/Exception.h:44,
    from /TESTBUILD/pegasus/src/Pegasus/Common/CIMName.h:41,
    from /TESTBUILD/pegasus/src/Pegasus/Client/CIMClient.h:39,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTVAIInterface.h:4,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTCaVAI.h:24,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.h:11,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.cpp:1:
    /TESTBUILD/pegasus/src/Pegasus/Common/Formatter.h:114: error: `Pegasus::Formatter::Arg::Arg(Pegasus::Sint32)' and `Pegasus::Formatter::Arg::Arg(Pegasus::Boolean)' cannot be overloaded
    In file included from /TESTBUILD/pegasus/src/Pegasus/Common/CIMProperty.h:40,
    from /TESTBUILD/pegasus/src/Pegasus/Common/CIMObject.h:42,
    from /TESTBUILD/pegasus/src/Pegasus/Client/CIMClient.h:41,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTVAIInterface.h:4,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTCaVAI.h:24,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.h:11,
    from /TESTBUILD/v2.08.00/TESTsrc/TESTBase.cpp:1:
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:92: error: `Pegasus::CIMValue::CIMValue(Pegasus::Sint32)' and `Pegasus::CIMValue::CIMValue(Pegasus::Boolean)' cannot be overloaded
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:147: error: `Pegasus::CIMValue::CIMValue(const Pegasus::Array<Pegasus::Boolean>&)' and `Pegasus::CIMValue::CIMValue(const Pegasus::Array<Pegasus::Boolean>&)' cannot be overloaded
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:291: error: `void Pegasus::CIMValue::set(Pegasus::Sint32)' and `void Pegasus::CIMValue::set(Pegasus::Boolean)' cannot be overloaded
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:323: error: `void Pegasus::CIMValue::set(const Pegasus::Array<Pegasus::Boolean>&)' and `void Pegasus::CIMValue::set(const Pegasus::Array<Pegasus::Boolean>&)' cannot be overloaded
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:377: error: `void Pegasus::CIMValue::get(Pegasus::Sint32&) const' and `void Pegasus::CIMValue::get(Pegasus::Boolean&) const' cannot be overloaded
    /TESTBUILD/pegasus/src/Pegasus/Common/CIMValue.h:409: error: `void Pegasus::CIMValue::get(Pegasus::Array<Pegasus::Boolean>&) const' and `void Pegasus::CIMValue::get(Pegasus::Array<Pegasus::Boolean>&) const' cannot be overloaded
    *** Error code 1
    make: Fatal error: Command failed for target `/TESTBUILD/v2.08.00/TESTsrc/TESTBase.or'
    Same ERROR in Sun CC:-
    palace /TESTBUILD/p2.08.00/TESTobj-> make -ef Make_SolarisVAICC TESTVAIrun
    ( /sun-share/SUNWspro/bin/CC -DSOLARIS_PLATFORM -DUNIX -DPEGASUS_PLATFORM_SOLARIS_SPARC_CC -features=bool -DPEGASUS_USE_EXPERIMENTAL_INTERFACES -DTEST_VAI -DEXPAND_TEMPLATES -D__EXTERN_C__ -DPEGASUS_INTERNALONLY -DPEGASUS_OS_SOLARIS -DPEGASUS_USE_EXPERIMENTAL_INTERFACES -DPEGASUS_USE_DEPRECATED_INTERFACES -Dregister= -D_POSIX_PTHREAD_SEMANTICS -DCLUSTER_GEN_APP -DSTAND_ALONE_INTEG -I"/TESTBUILD/v2.08.00/TESTsrc" -I"/Pegasus/pegasus-2.5/src" -I"/TESTBUILD/p2.08.00/TESTCommonLib" -O -c -o /TESTBUILD/p2.08.00/TESTobj/TESTBase.o /TESTBUILD/p2.08.00/TESTsrc/TESTBase.cpp );
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/ArrayInter.h", line 47: Error: Multiple declaration for Pegasus::Array<int>.
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/Formatter.h", line 103: Error: Multiple declaration for Pegasus::Formatter::Arg::Arg(int).
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 90: Error: Multiple declaration for Pegasus::CIMValue::CIMValue(int).
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 145: Error: Multiple declaration for Pegasus::CIMValue::CIMValue(const Pegasus::Array<int>&).
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 289: Error: Multiple declaration for Pegasus::CIMValue::set(int).
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 321: Error: Multiple declaration for Pegasus::CIMValue::set(const Pegasus::Array<int>&).
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 375: Error: Multiple declaration for Pegasus::CIMValue::get(int&) const.
    "/Pegasus/pegasus-2.5/src/Pegasus/Common/CIMValue.h", line 407: Error: Multiple declaration for Pegasus::CIMValue::get(Pegasus::Array<int>&) const.
    Thank and Regards,
    Dileep

    In Sun C++, type bool is not equivalent to signed int. I don't think g++ makes it equivalent either.
    Please show an example of source code that is causing the problem.

  • Error ORA-01426: numeric overflow when Creating table with double data type

    Hi,
    I am using ODP.NET to create a table with data from SQL to Oracle. The problem is with double data type fields that is equivalent to FLOAT(49) in Oracle. My syntax is:
    CREATE TABLE SCOTT.ALLTYPES
    F1 NUMBER(10),
    F10 DATE,
    F2 NUMBER(10),
    F3 NUMBER(5),
    F4 NUMBER(3),
    F5 FLOAT(23),
    F6 FLOAT(49),
    F7 NUMBER (38,5),
    F8 NVARCHAR2(500),
    F9 NVARCHAR2(500)
    Th error is with field F6 but I am not sure what is the correct type equivalent to double in SQL.
    I woul appreciate if anyone can help me with this problem.
    Sunny

    Does this simple test work for you?
    In database:
    create table float_test
      f1 float(49)
    );C# code:
    using System;
    using System.Data;
    using System.Text;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;
    namespace FloatTest
      /// <summary>
      /// Summary description for Class1.
      /// </summary>
      class Class1
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
          // connect to local db using o/s authenticated account
          OracleConnection con = new OracleConnection("User Id=/");
          con.Open();
          // will hold the value to insert
          StringBuilder sbValue = new StringBuilder();
          // create a string of 49 number 9's
          for (int i = 0; i < 49; i++)
            sbValue.Append("9");
          // command object to perform the insert
          OracleCommand cmd = con.CreateCommand();
          cmd.CommandText = "insert into float_test values (:1)";
          // bind variable for the value to be inserted
          OracleParameter p_value = new OracleParameter();
          p_value.OracleDbType = OracleDbType.Double;
          p_value.Value = Convert.ToDouble(sbValue.ToString());
          // add parameter to collection
          cmd.Parameters.Add(p_value);
          // execute the insert operation
          cmd.ExecuteNonQuery();
          // clean up
          p_value.Dispose();
          cmd.Dispose();
          con.Dispose();
    }SQL*Plus after executing above code:
    SQL> select * from float_test;
            F1
    1.0000E+49
    1 row selected.- Mark

  • Ho to Comapre with Number Data Type

    hi
    My reqt is to do validation in ValidateEntity Method.
    How to compare the with Number Data type:
    For ex: Number a = gatAbc();
    If(a>10)
    throw new oaExcption...
    But while comapring i got compiler Error
    Error(218,17): method >(oracle.jbo.domain.Number, int) not found in class abc.oracle.apps.per.irc.pqr.schema.server.XxabcEOImpl
    So plz tell me how to compare the integer value with Number data type
    Thanx

    Check with float. It will work definitely.
    float number = Float.parseFloat(HrsPerDay); //HrsPerDay is a String and I am converting it to float
    if(( number <= 0) || (number >= 21))
                            throw new OAAttrValException(OAAttrValException.TYP_VIEW_OBJECT,
                                              "xxCopyResourceVO1",
                                              rowi.getKey(),
                                              "NoOfCopies",
                                              rowi.getAttribute("NoOfCopies"),
                                              "PA",
                                              "xx_xx_COPY_POSITIVE_NUM");
                       }Here in this code i am also checking that the Hours cannot be less then 0 and greater than 20.
    Thanks
    --Anil                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Problem with packed data type variable?

    Hi all,
    I have a problem while doing calculations with packed data type variables . As they are saving in the format '0,00'. so unable to do calulations because of ',' . 
    To convert these fields into str and replacing ',' with '.' is very time consuming because i have many packed data type variables.
    Can you please provide any other alternative for over coming this problem? Is there any option while defining these variables?
    Thanks,
    Vamshi.

    Hi VAMSHI KRISHNA,
    First check out SU01 Tcode (if u don't have permission then u can ask BASIS to do it)
    Enter User Name
    Execute
    Goto Defaults Tab
    Check Out Decimal Notation here... set it 1,234,567.89
    SAVE it
    Log Off once and again login with the same user id and check the result...
    Hope it will solve your problem..
    Thanks & Regards
    ilesh 24x7

  • Creating Web service for PL/SQL Procedure with Complex Data Types

    I need to created web service for PL/SQL Procedure with Complex Data types like table of records as parameters, how do we map the pl/sql table type parameters with web service, how to go about these?

    Hello,
    When you are creating a service from a Stored Procedure, the OracleAS WS tools will create necessary Java and PL wrapper code to handle the complex types (table of record) properly and make them compatible with XML format for SOAP messages.
    So what you should do is to use JDeveloper or WSA command line, to create a service from your store procedure and you will see that most of the work will be done for you.
    You can find more information in the:
    - Developing Web Services that Expose Database Resources
    chapter of the Web Service Developer's guide.
    Regards
    Tugdual Grall

  • Strange repaint behaviour with JList & Keyboard actions

    Hi everyone,
    This is my first post to the forum. You guys have been a great help in the past and I hope to contribute more in the future.
    Anyways, I've encountered some strange repainting behaviour with a JDialog that uses a JList and a JButton. The dialog is fairly straight-forward and basically this is how it works (like an open file dialog - yes I'm implementing my own filechooser of sorts):
    * JList lists a number of simple items that the user can select from.
    * Once a selection is made, an Open button (JButton) is enabled.
    * <ENTER> key is registered (using registerKeyboardAction()) with a JPanel which is used as the main content pane in the dialog.
    * The user can either click on the Open Button or hit the <ENTER> key which then closes the dialog and runs whatever logic that needs to.
    Now, the repaint problem comes in when:
    1. User selects an item.
    2. User hits the <ENTER> button
    3. Dialog closes
    4. User brings the dialog back up. This entails reloading the list by removing all elements from the list and adding new ones back in.
    5. Now... if the user uses the mouse to select an item lower in the list than what was done in step #1, the selection is made, but the JList doesn't repaint to show that the new selection was made.
    I didn't include a code sample because the dialog setup is totally straight-forward and I'm not doing anything trick (I've been doing this kind of thing for years now).
    If I remove the key registration for the <ENTER> key from the dialog, this problem NEVER happens. Has anyone seen anything like this? It's a minor problem since my workaround is to use a ListSelectionListener which manually calls repaint() on the JList inside the valueChanged() method.
    Just curious,
    Huy

    Oh, my bad. I'm actually using a JToggleButton and not a JButton, so the getRootPane().setDefaultButton() doesn't apply because it only takes JButton as an input param. I wonder why it wasn't implemented to take AbstractButton. hmmm.

Maybe you are looking for