Creating an messagebox in forms with look and feel of Windows

I wanted to create an message box in my form with look and feel of windows.For this i used the package ORA.FFI...but i am getting an error....and i am not bale to clear it...the code is as follows
Package Specification: -
PACKAGE messagebox IS
/*Function message_box calls windows MessageBox function. */
FUNCTION message_box(plptext IN VARCHAR2,plpcaption IN VARCHAR2)
RETURN PLS_INTEGER;
END;
Package body : -
PACKAGE BODY messagebox IS
lh_window ORA_FFI.LIBHANDLETYPE;
fh_mb ORA_FFI.FUNCHANDLETYPE;
lh_forms ora_ffi.libHandleType;
/* Function i_mbx acts as the interface to the Messagebox
function in windows
FUNCTION i_mbx(funchandle IN ORA_FFI.FUNCHANDLETYPE,
plptext IN OUT VARCHAR2,
plpcaption IN OUT VARCHAR2)
RETURN PLS_INTEGER;
PRAGMA interface(C,i_mbx,11265);
FUNCTION message_box(plptext IN VARCHAR2,
plpcaption IN VARCHAR2)
RETURN PLS_INTEGER IS
ltext VARCHAR2(500) := plptext;
lcaption VARCHAR2(500) := plpcaption;
BEGIN
RETURN(i_mbx(fh_mb,ltext,lcaption));
END;
BEGIN
lh_window := ORA_FFI.LOAD_LIBRARY('d:\','DclMsgBox.dll');
fh_mb := ORA_FFI.REGISTER_FUNCTION(lh_window,'DclMsgBox',ORA_FFI.C_STD);
ORA_FFI.REGISTER_RETURN(fh_mb,ORA_FFI.C_CHAR_PTR);
ORA_FFI.REGISTER_RETURN(fh_mb,ORA_FFI.C_CHAR_PTR);
--ORA_FFI.REGISTER_RETURN(fh_mb,ORA_FFI.C_INT);
END;
Now when i call this function in When-New-Form-Instance as
declare
p number;
begin
p:=messagebox.message_box('hello','test');
end;
I had created an dll for message box and placed the .dll and .lib files in the d:\ of my system.
I get an error message when i run the app. The error is:
The instruction at "0x005a3b24" referenced memory at "0x00000006".The memory could not be "read".
Can anybody please tell me where have i gone wrong....

Colin Martin wrote:
I agree the leather look is horrible. It's just not a reflection of the cutting edge modern design we have all got to love over the years. If it has to be there at least give us a choice of looks.
There is a word for this (not that one) - skeuomorph. Wikipedia defines this as 'a derivative object that retains ornamental design cues to a structure that was necessary in the original. Skeuomorphs may be deliberately employed to make the new look comfortably old and familiar'.
Common examples are found in audio software with pictures of actual knobs that you turn, as here; and the leather-bound tear-off look of calendar and contacts on the iPad is the same principle: the intention is to make it familiar and friendly to people who might otherwise be frightened off by a modern look because they are not used to modern technology. The whole concept and look of the iOS operating system is being brought into use on Macs for the same reason, to encourage non-tech-savvy people not to be frightened of them.
This is all very well in its way, but in these two particular cases the result is unfortunate, particularly for experienced users, and it really ought to be possible to choose between the looks (as you can with the Mail layouts), even if the skeuomorph is the default.

Similar Messages

  • Is there a way I can add be background image to my sharepoint site with look and feel?

    Whenever i add any background image with "look and feel" it stretches the image. I've tried modifying the CSS file (in body and tried .ms-backgroundImage setting "background-size:inherit !important;") to fix it, but it doesn't seem to
    have any effect. I there anyway i can add a background image to the master html or css code and get it to not stretch?
    Thanks
    James T.F

    Hi,
    According to your post, my understanding is that you wanted to add background image to sharepoint site with look and feel.
    We can define the Image Url  in the Composed looks (Site Settings > Web Designer Galleries > Composed looks) to add background.
    However, the image will be stretched to fill the viewport at 100%.
    Though we can override the CSS attributes which would allow the image to repeat, but instead I recommend to go the no CSS route and switched the background to a much larger one that would fill the viewport nicely without looking pixelated.
    More information:
    SharePoint 2013 Branding: A New Approach
    SharePoint 2013's Branding – My first three lessons
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Jdeveloper doesn't show inspect pop up while look and feel is windows

    Jdeveloper doesn't show inspect pop up while look and feel is windows

    Thanks for looking at the issue Frank. Here are the points:
    1. I debugging a java application using Jdeveloper 11g IDE
    2. I had modified the IDE look and feel to windows.
    3. The debugger stopped at a breakpoint and i tried to inspect the value of an expression.
    3.1. Select that expression using mouse.
    3.2. Right click on the expression
    3.3. click on the inspect option.
    4. I was expecting a pop-up window to appear. But it didn't come.
    5. Later i changed look and feel of IDE to Oracle/fusion(blue) which is the default.
    6. Repeated step 3.
    7. Got a pop up window and was able to inspect the value.
    Hope this info helps.
    -Sandeep.
    Edited by: Sandeep.Sundaram on Oct 17, 2008 2:13 PM

  • Windows 10 look and feel thoughts

    First off I want to start by saying I've run Windows 8/8.1 from the beginning on all my machines. With Windows 8 I didn't miss the start menu and quickly understood the advantages and the short cuts. Also working for a large software company
    I personally made sure that we created a Windows 8 app and a Windows 8 Phone app. Oh yea, early adopter of the Windows 8 phone too which I still absolutely love. I'm not saying everything was rosy. I still have Win App API complaints
    which I voiced on another thread years ago and still have the same complaint all thought I do understand why they do what they do. There are so many great features in Windows 8/8.1/10. Being able to log in once from any device and access the same information,
    desktop and One Drive. Now I can't live with out these features. Home, office, phone, surface. I love it.
    The second the Windows 10 preview launched it was loaded on my laptop and surface. Not even VM. Yes it crashes a lot. It's a tech preview. Of course it does.
    I demoed some bleeding edge code on a bleeding edge OS to a customer. By bleeding I mean cut your wrist bleeding. It's a tech preview I knew better. After that tragedy, I had to get ready for our yearly conference which I planed
    on using Windows 10 for but instead decided to reload my laptop with Windows 7.... I have barely touched Windows 7 in years. Why Windows 7. The start menu. I didn't realize that missed it and how much better it is to use till Windows 10. In Windows
    10, I love the new start menu. Incorporating the live tiles with the basic Win 7 start menu ready extend it functionally and make it far easier and efficient to use.
    This is where I realized the difference and it's really just purely visual, but that is a lot. It isn't just the start menu. I miss the look and feel of Windows 7. The features in Windows 7 don't even compare with the new versions of Windows but why is it
    that Windows 10 still feel like Windows 3.1. Hardware has only gotten better. Even the GPU onboard of the newer CPUs is better than a lot of video cards these days however Win forms, shadowing all of the visuals that made Windows 7, well for
    lack of a better word, pretty. They are all gone. Win 8 to 10 are all about WPF and that's ok, but even WPF looks and feels better on Windows 7. This is where the new OSs fail. I know that the difference in the way WPF and Win forms appear has been
    highlighted on more than a few threads. But I think it's beyond that. The whole presentation in Windows 10 is just lacking.
    Now, would I personally go back to Windows 7 on all machines because of the visual short comings of Windows 10. No, of course not. The new features are far to valuable. But I'll never demo anything with dialogs, forms and even WPF forms on
    anything other than Windows 7 again. A 6 year old feature lacking OS that just looks more refined than the current OSs.
    Just some thoughts. Some people might not agree with me.

    I'd try them over here.
    http://answers.microsoft.com/en-us/windows/forum/windows_tp?tab=Threads
    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows]
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • Chromosomes and genes in portal look and feel

    Hi everybody.
    Has anyone experimented succesfully the use of genes and chromosomes in bea portal 9.2?
    I have troubles with look and feel editor, that doesn't show inlined css, and runtime also, that seems to always
    get the default.chromosome file instead of the one i configured in the .laf file.
    Any point? Thank you.

    In regard to your chromosome not working: if you created your .portal file first, and then changed the .laf file, you'll need to reload the markup from Workshop. See the second bullet item on this link: http://edocs.bea.com/wlp/docs92/portals/develop_portals.html#wp1011140
    If you want, before you do the above, you can check the markup of your .portal file to see if it's correct. Open your .portal as XML, and find the <netuix:lookAndFeel> element. It should have a attributes for skinChromosome and skeletonChromosome that equal your new .chromosome file's name.
    I don't believe that the Look and Feel editor supports inlined CSS rules at this time, but that is an optimization in scope for the next release.
    George

  • More than one Predefined Look and feel to choose from

    Hi
    Is it possible to create a set of pre-defined look and feel styles, and then allowing the user to choose one that will be appled to a site when he or she logs in
    Any ideas will be appreciated
    Thanks
    Harry

    I don't think you can have multiple styles associated with the same page. If anyone can prove me wrong, please do so. What you can do is give people the ability to create their own pages. You can then set up predefined styles that can be accessed publicly. They can copy an existing page, then modify the style with one of the predefined ones.
    Eric

  • JFileChooser & XP look and feel

    Hello!
    I'm changing an exiting applet to have a local look & feel by simply doing this:
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); When the JFileChooser shows with the "metal" (java default) Look&Feel all is good but when it shows with
    XP (or windows) L&F it has added a "panel" on the left side with icons for "My Recent Document" , "Desktop" , "My Documents", "My Computer" and " My Network places".
    I really don't want them showing since it looks weird on the HTML page.
    Does somebody know if and how I can get rid of that "panel" and still have the rest of the L&F intact?
    Regards Calle

    Check out skin look and feel. They have all sorts of look and feels including windows XP.
    http://www.l2fprod.com

  • Swing disabled components look and feel problem.

    Hi All,
    I have a Swing application. My system is recently upgraded to JRE 1.6 and I'm facing problem with look and feel of swing components when they are disabled. Color of disabled components is very faint and its being difficult to read the text in such disabled components. In JRE 1.4 this problem was not there. Please let me know what I can do to get the look and feel(Color and Font) of disabled components, same as JRE 1.4.
    Thanks

    Sandip_Jarad wrote:
    ..I have a Swing application. My system is recently upgraded to JRE 1.6 and I'm facing problem with look and feel of swing components when they are disabled. Which look and feel is the application using? As an aside, did it never occur to you to mention the PLAF?
    ..Color of disabled components is very faint and its being difficult to read the text in such disabled components. Why is it so gosh-darned important to read the text on a control that is (supposedly) not relevant or not available?
    ..In JRE 1.4 this problem was not there. Please let me know what I can do to get the look and feel(Color and Font) of disabled components, same as JRE 1.4. Here are some suggestions, some of them are actually serious. I'll leave it as an exercise for you, to figure out which ones.
    - Run the app. in 1.4.
    - Use a custom PLAF that offers a 'less faint' rendering of disabled components.
    - Use Motif PLAF (I haven't checked, but I bet that has not changed since 1.4).
    - Put the important text in a tool-tip.

  • Aqua Look and Feel

    Hello everybody,
    can someone show me how to use the Mac Aqua Look and Feel on Windows platform.
    Thanks very much!!!!!

    You can't since it uses calls to native APIs that are available only under Mac OS.

  • Problem with java look and feel

    Hi! This is my first time posting here. Do apologize me if I am not familiar with the regulations here. Thanks!
    Currently, I am developing a project using NetBeans IDE. It is using RMI, and some basic UI. I am facing the following error when I tried applying the java look and feel code. Please see below for the code used and the error message.
    try {   UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception e) { }
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.plaf.ColorUIResource cannot be cast to java.util.List
    at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:196)
    at javax.swing.plaf.metal.MetalInternalFrameTitlePane.paintComponent(MetalInternalFrameTitlePane.java:384)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5129)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
    at javax.swing.JComponent.paint(JComponent.java:1013)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1797)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:734)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Java Result: 1

    Thanks for everyone's help!
    Below is the executable code generated using NetBeans which is enough to generate the error message. Sometimes you can get the error message just by running the program. Sometimes the error will occur when you go into the Menu and click on Item.
    * NewJFrame.java
    * Created on January 8, 2008, 1:11 PM
    package client;
    import javax.swing.UIManager;
    * @author  Yang
    public class NewJFrame extends javax.swing.JFrame {
        /** Creates new form NewJFrame */
        public NewJFrame() {
            initComponents();
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                         
        private void initComponents() {
            jDesktopPane1 = new javax.swing.JDesktopPane();
            jInternalFrame1 = new javax.swing.JInternalFrame();
            jMenuBar1 = new javax.swing.JMenuBar();
            jMenu1 = new javax.swing.JMenu();
            jMenuItem1 = new javax.swing.JMenuItem();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
            jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
            jInternalFrame1Layout.setHorizontalGroup(
                jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 190, Short.MAX_VALUE)
            jInternalFrame1Layout.setVerticalGroup(
                jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 95, Short.MAX_VALUE)
            jInternalFrame1.setBounds(80, 40, 200, 130);
            jDesktopPane1.add(jInternalFrame1, javax.swing.JLayeredPane.DEFAULT_LAYER);
            jMenu1.setText("Menu");
            jMenuItem1.setText("Item");
            jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jMenuItem1ActionPerformed(evt);
            jMenu1.add(jMenuItem1);
            jMenuBar1.add(jMenu1);
            setJMenuBar(jMenuBar1);
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 484, Short.MAX_VALUE)
                    .addGap(20, 20, 20))
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
            pack();
        }// </editor-fold>                       
        private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
            jInternalFrame1.setVisible(true);
         * @param args the command line arguments
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception e) {
                e.printStackTrace();
        // Variables declaration - do not modify                    
        private javax.swing.JDesktopPane jDesktopPane1;
        private javax.swing.JInternalFrame jInternalFrame1;
        private javax.swing.JMenu jMenu1;
        private javax.swing.JMenuBar jMenuBar1;
        private javax.swing.JMenuItem jMenuItem1;
        // End of variables declaration                  
    }Edited by: Boxie on Jan 7, 2008 11:23 PM

  • PushButton with Windows XP Look and Feel

    Hi all,
    I am looking for a way to give my buttons in my Oracle Forms 10gR2 (with Sun JPI 1.5) a Windows XP look and feel. In my formsweb.cfg I can choose between a generic and an oracle look and feel. The generic look and feel claims to have the windows look and feel, but unfortunatly, this is a Windows 3.11 L&F. Because of the overall look and feel of the Oracle L&F we decided on using this L&F but we would like our buttons to look like other buttons in Windows XP. I think this can be done by building a specific java implementation class but I have no experience with this.
    Did anybody already build such an implementation class and willing to share it with me?
    Thanks in advance,
    Harold

    The only way to accomplish this is with a Java Bean or PJC. Refer to the Oracle Forms Demos for some examples of what can be done with Beans and PJCs. Also, refer to the following page:
    http://forms.pjc.bean.over-blog.com/categorie-450786.html
    Forms Demos on OTN:
    http://www.oracle.com/technology/sample_code/products/forms/index.html
    One other suggestion would be to use:
    LookAndFeel=oracle
    colorScheme=blaf
    This will not resemble XP, but does offer a more professional looking application over the standard colors. BLAF was originally created for Oracle Applications, but works in all versions of Forms 6i and newer. BLAF = Browser Look And Feel

  • Implementing Forms look and feel into oracle 10g

    hello, im using oracle 10.1.2.0.2
    i've been trying to implement this look and feel project hours ago here are the steps that i followed:
    # Copy the corresponding JAR file to your /forms/java directory. [copied it to C:\DevSuiteHome_1\forms\java\ and renamed it to laf.jar like mentioned in http://forums.oracle.com/forums/thread.jspa?threadID=693024 but copied also laf_1012.jar  ]
    # Update your /forms/server/formsweb.cfg file.
    As it needs the Sun Java Plug-in instead of the Oracle JInitiator, you have to create a special section that uses the Sun Plug-in.
    You also need to add the corresponding JAR file to the archive tag (not the archive_jini). [modified it to archive=frmall.jar,laf.jar, laf_1012.jar, i didnt know what to do with the Sun Java Plug-in but when i debug and run the oracle there is an icon that shows the java icon launched]
    # Copy the forms.css file somewhere on your disk (by default, it is searched in the C:/ root directory). [done and i've put it in c:\]
    # Compile the laf.pll PL/SQL library, then copy the pll.plx to one of the directories pointed by the FORMS_PATH variable.
    *i've put the laf.pll in my C:\DevSuiteHome_1\forms as shown in the FORMS_PATH of the default.env
    *tried to open the laf.pll from the oracle froms and reports, choosed Program -> Compile PL/SQL -> All, but errors like PKG_DB_LAF_LOV.PREPARE must be declared ...
    *tried to compile it using f60gen module=laf.pll userid=Administrator/pass module_type=LIBRARY output_file=laf.plx batch=yes compile_all=SPECIAL but the f60gen is no where to be found
    *i tried to replace f60gen by envshell.cmd from the $APPL_TOP but i cant find any environment variable called $APPL_TOP, i even searched the whole hard disk for envshell.cmd and couldnt find anything
    Please help as this is the final step of implementation, waiting any response asap!

    Hello,
    Please, don't ask question about the LAF on this forum. Ask them on the dedicated mail address : [email protected]
    Thanks,
    Francois

  • How to create a report in Form line Style and can display Image field?

    Hi,
    In Report builder 10g, I would like to create a Report with Form Line Style and this report included a Image field.
    I can choose this Style only when Select Report type is Paper Layout. Because, If I choose Create both Web & Paper Layout or Create Web Layout only then in the next Style tab 03 option Form, Form letter and Mailing Label be Disabled.
    But in Paper Layout, my report can not display Image field.
    I tried with Web layout and all the other Styles (Except 03 mentioned be Disabled) then all Styles are displayed Imager field OK.
    How to create a report in Form line Style and can display Image field?
    I was change File Format property of my Image field from text to Image already in Property Inspector. But report only showed MM for my Image field.
    Thanks & regards,
    BACH
    Message was edited by:
    bachnp

    Here you go..Just follow these steps blindly and you are done.
    1) Create a year prompt with presentation variable as pv_year
    2) Create a report say Mid report with year column selected 3 times
    - Put a filter of pv_year presentation variable on first year column with a default value say @{pv_year}{2008}
    - Rename the second time column say YEAR+1 and change the fx to CAST(TIME_DIM."YEAR" AS INT)+1
    - Rename the second time column say YEAR-1 and change the fx to CAST(TIME_DIM."YEAR" AS INT)-1
    Now when you will run Mid Report, this will give you a records with value as 2008 2009 2007
    3) Create your main report with criteria as Year and Measure col
    - Change the fx for year column as CAST(TIME_DIM."YEAR" AS INT)
    - Now put a filter on year column with Filter based on results of another request and select these:
    Relationship = greater than or equal to any
    Saved Request = Browse Mid Report
    Use values in Column = YEAR-1
    - Again,put a filter on year column with Filter based on results of another request and select these:
    Relationship = less than or equal to any
    Saved Request = Browse Mid Report (incase it doesn't allow you to select then select any other request first and then select Mid Report)
    Use values in Column = YEAR+1
    This will select Year > = 2007 AND Year < = 2009. Hence the results will be for year 2007,2008,2009
    This will 100% work...
    http://i56.tinypic.com/wqosgw.jpg
    Cheers

  • Problem With ButtonUI in an Auxiliary Look and Feel

    This is my first post to one of these forums, so I hope everything works correctly.
    I have been trying to get an axiliary look and feel installed to do some minor tweaking to the default UI. In particular, I need it to work with Windows and/or Metal as the default UI. For the most part I let the installed default look and feel handle things with my code making some colors lighter, darker, etc. I also play with focus issues by adding FocusListeners to some components. I expect my code to work reasonably well no matter what the default look and feel is. It works well with Motif, Metal, and Windows, the only default look and feels I've tested with. What I'm going to post is a stripped down version of what I have been working on. This example makes gross changes to the JButton background and foreground colors in order to illustrate what I've encountered.
    I have three source code files. The first, Problem.java, creates a JFrame and adds five buttons to it. One button installs MyAuxLookAndFeel as an auxiliary look and feel using MyAuxButtonUI for the look and feel of JButtons. The next button removes that look and feel. The next button does nothing except print a line to System.out. The next button installs MyAuxLookAndFeel as an auxiliary look and feel using MyModButtonUI for the look and feel of JButtons. The last button removes that look and feel.
    The problem is, when I install the first auxiliary look and feel, buttons are no longer tabable. Also, they cannot be invoked by pressing the space button when they're in focus. When I remove the first auxiliary look and feel everything reverts to behaving normally. When I add the "Mod" version, button tabability is fine. The only difference is I've added the following code:
    if ( c.isFocusable() ) {
       c.setFocusable(true);
    }That strikes me as an odd piece of code to profoundly change the program behavior. Anyway, after adding and removing the "Mod" look and feel, the tababilty is forever fixed. That is, if I subsequently re-install the first look and feel, tababilty works just fine.
    The problem with using the space bar to select a focused button is more problematic. My class is not supposed to mess with the default look and feel which may or may not use the space bar to press the button with focus. When the commented code in MyModButtonUI is uncommented, things behave correctly. Even the statement
    button.getInputMap().remove( spaceKeyStroke );doesn't mess things up after the auxiliary look and feel is removed. So far I've tested this with JRE 1.4.2_06 under Windows 2000, JRE 1.4.2_10 under Windows XP, and JRE 1.5.0_06 under Windows XP and the behavior is the same.
    All of this leads me to two questions.
    1. Is my approach fundamentally flawed? I've extended TextUI and ScrollBarUI with no problems. This is the only problem I've encountered with ButtonUI. My real workaround for the space bar issue is better than the one I've supplied in the example, but it certainly is not guaranteed to work for any arbitrary default look and feel.
    2. Assuming I have no fundamental problems with my approach, it's possible I've found a real bug. I searched the bug database and couldn't find anything like this. Of course, this is the first time I've tried seasrching the database for a bug so my I'm doing it badly. Has this already been reported as a bug? Is there any reason I shouldn't report it?
    What follows is the source code for my example. It's in three files because the two ButtonUI classes must be public in order to work. Thanks for insight you can provide.
    Bill
    File Problem.java:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Problem extends JFrame {
       public boolean isAuxInstalled = false;
       public boolean isModInstalled = false;
       public LookAndFeel lookAndFeel = new MyAuxLookAndFeel();
       private static int ctr = 0;
       public static void main( String[] args ) {
          new Problem();
       public Problem() {
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(250, 150);
          setTitle("Button Test");
          JButton install = new JButton("Install");
          JButton remove = new JButton("Remove");
          JButton doNothing = new JButton("Do Nothing");
          JButton installMod = new JButton("Install Mod");
          JButton removeMod = new JButton("Remove Mod");
          this.getContentPane().setLayout(new FlowLayout());
          this.getContentPane().add(install);
          this.getContentPane().add(remove);
          this.getContentPane().add(doNothing);
          this.getContentPane().add(installMod);
          this.getContentPane().add(removeMod);
          install.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                if ( !isAuxInstalled ) {
                   isAuxInstalled = true;
                   UIManager.addAuxiliaryLookAndFeel( lookAndFeel );
                   SwingUtilities.updateComponentTreeUI( Problem.this );
          remove.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                if ( isAuxInstalled ) {
                   isAuxInstalled = false;
                   UIManager.removeAuxiliaryLookAndFeel( lookAndFeel );
                   SwingUtilities.updateComponentTreeUI( Problem.this );
          doNothing.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                System.out.println( "Do nothing " + (++ctr) );
          installMod.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                if ( !isModInstalled ) {
                   isModInstalled = true;
                   UIManager.addAuxiliaryLookAndFeel( lookAndFeel );
                   SwingUtilities.updateComponentTreeUI( Problem.this );
          removeMod.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                if ( isModInstalled ) {
                   isModInstalled = false;
                   UIManager.removeAuxiliaryLookAndFeel( lookAndFeel );
                   SwingUtilities.updateComponentTreeUI( Problem.this );
          setVisible(true);
       class MyAuxLookAndFeel extends LookAndFeel {
          public String getName() {
             return "Button Test";
          public String getID() {
             return "Not well known";
          public String getDescription() {
             return "Button Test Look and Feel";
          public boolean isSupportedLookAndFeel() {
             return true;
          public boolean isNativeLookAndFeel() {
             return false;
          public UIDefaults getDefaults() {
             UIDefaults table = new MyDefaults();
             Object[] uiDefaults = {
                "ButtonUI", (isModInstalled ? "MyModButtonUI" : "MyAuxButtonUI"),
             table.putDefaults(uiDefaults);
             return table;
       class MyDefaults extends UIDefaults {
          protected void getUIError(String msg) {
    //         System.err.println("(Not) An annoying error message!");
    }File MyAuxButtonUI.java:
    import javax.swing.*;
    import java.awt.*;
    import javax.swing.plaf.*;
    import javax.swing.plaf.multi.*;
    import javax.accessibility.*;
    public class MyAuxButtonUI extends ButtonUI {
       private Color background;
       private Color foreground;
       private ButtonUI ui = null;
       public static ComponentUI createUI( JComponent c ) {
          return new MyAuxButtonUI();
       public void installUI(JComponent c) {
          MultiButtonUI multiButtonUI = (MultiButtonUI) UIManager.getUI(c);
          this.ui = (ButtonUI) (multiButtonUI.getUIs()[0]);
          super.installUI( c );
          background = c.getBackground();
          foreground = c.getForeground();
          c.setBackground(Color.GREEN);
          c.setForeground(Color.RED);
       public void uninstallUI(JComponent c) {
          super.uninstallUI( c );
          c.setBackground(background);
          c.setForeground(foreground);
          this.ui = null;
       public void paint(Graphics g, JComponent c) {
          this.ui.paint( g, c );
       public void update(Graphics g, JComponent c) {
          this.ui.update( g, c );
       public Dimension getPreferredSize(JComponent c) {
          if ( this.ui == null ) {
             return super.getPreferredSize( c );
          return this.ui.getPreferredSize( c );
       public Dimension getMinimumSize(JComponent c) {
          if ( this.ui == null ) {
             return super.getMinimumSize( c );
          return this.ui.getMinimumSize( c );
       public Dimension getMaximumSize(JComponent c) {
          if ( this.ui == null ) {
             return super.getMaximumSize( c );
          return this.ui.getMaximumSize( c );
       public boolean contains(JComponent c, int x, int y) {
          if ( this.ui == null ) {
             return super.contains( c, x, y );
          return this.ui.contains( c, x, y );
       public int getAccessibleChildrenCount(JComponent c) {
          if ( this.ui == null ) {
             return super.getAccessibleChildrenCount( c );
          return this.ui.getAccessibleChildrenCount( c );
       public Accessible getAccessibleChild(JComponent c, int ii) {
          if ( this.ui == null ) {
             return super.getAccessibleChild( c, ii );
          return this.ui.getAccessibleChild( c, ii );
    }File MyModButtonUI.java:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.plaf.*;
    public class MyModButtonUI extends MyAuxButtonUI
       static KeyStroke spaceKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0 );
       public static ComponentUI createUI( JComponent c ) {
          return new MyModButtonUI();
       public void installUI(JComponent c) {
          super.installUI(c);
          c.setBackground(Color.CYAN);
          if ( c.isFocusable() ) {
             c.setFocusable(true);
    //      final JButton button = (JButton) c;
    //      button.getInputMap().put( spaceKeyStroke, "buttonexample.pressed" );
    //      button.getActionMap().put( "buttonexample.pressed", new AbstractAction() {
    //         public void actionPerformed(ActionEvent e) {
    //            button.doClick();
    //   public void uninstallUI(JComponent c) {
    //      super.uninstallUI(c);
    //      JButton button = (JButton) c;
    //      button.getInputMap().remove( spaceKeyStroke );
    //      button.getActionMap().remove( "buttonexample.pressed" );
    }

    here is the code used to change the current look and feel :
    try {
                   UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
             catch (InstantiationException e)
                  System.out.println("Error occured  "+ e.toString());
             catch (ClassNotFoundException e)
                  System.out.println("Error occured  "+ e.toString());
             catch (UnsupportedLookAndFeelException e)
                  System.out.println("Error occured  "+ e.toString());
             catch (IllegalAccessException e)
                  System.out.println("Error occured in .. " + e.toString());
             Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
             Fenetre fen = new Fenetre();
             fen.setSize(dim.width, dim.height);
             fen.setResizable(false);
                 fen.setLocation(0, 0);
                  fen.setVisible(true);

  • Transparent TextField with Synth Look and Feel

    I am trying to use synth to implement a textfield with a transparent background, and having some problems with it. I can see my panel and the transparent field fine enough in the beginning, but when the text in the field changes, it writes right over the previous text and becomes a pile of unreadable white marks. I've experimented with varying degrees of transparency, but you can still see the old field underneath slightly. Does anyone have any suggestions? My code is below.
    Thanks.
    synth.xml
    <synth>
    <!-- PANEL -->
    <style id="panelStyle">
        <state>
            <imagePainter method="panelBackground" path="../../../lafImages/papyrus_bkgd.gif" sourceInsets="10 15 10 15"/>
        </state>
    </style>
    <bind style="panelStyle" type="name" key="PAPYRUS_PANEL"/>
    <!-- TEXTFIELD -->
    <style id="textFieldStyle">
        <font name="Kudasai" size="12"/>
        <state>
            <color type="TEXT_FOREGROUND" value="#FFFFFF"/>
            <!-- set the alpha value for transparency in 1st two digits -->
            <color type="BACKGROUND" value="#00000000"/>
        </state>
        <opaque value="false"/>
    </style>
    <bind style="textFieldStyle" type="region" key="TEXTFIELD"/>
    </synth>
    my tester
    class SynthTester {
        private JTextField field;
        public SynthTester(){
            initLookAndFeel();
            JFrame main = new JFrame();
            JPanel panel = new JPanel();
            panel.setName("PAPYRUS_PANEL");
            field = new JTextField(3);
            field.setText("0");
            panel.add(field);
            JButton button = new JButton("+");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    int val;
                    try {
                        val = Integer.parseInt(field.getText());
                    } catch( Exception ex ) {
                        val = 0;
                    val++;
                    field.setText(Integer.toString(val));
            panel.add(button);
            main.add(panel);
            main.pack();
            main.setVisible(true);
        private void initLookAndFeel() {
            SynthLookAndFeel lookAndFeel = new SynthLookAndFeel(); 
            try {
                InputStream is = getClass().getResourceAsStream("synth.xml");
                if( is == null) {
                    System.err.println("unable to load resource stream");
                } else {
                    lookAndFeel.load(is, getClass());
                    UIManager.setLookAndFeel(lookAndFeel);
            } catch (Exception e) {
                System.err.println("Couldn't get specified look and feel ("+ lookAndFeel+ "), for some reason.");
                System.err.println("Using the default look and feel.");
                e.printStackTrace();
                System.exit(1);
    }

    As its name implies, an imagePainter element creates a SynthPainter that paints from an image. For example:
    <synth>
    <style id="example">
    <state>
    <color value="white" type="BACKGROUND"/>
    </state>
    <imagePainter method="panelBackground" path="background.png"
    sourceInsets="5 6 6 7" paintCenter="false"/>
    <insets top="5" bottom="6" right="7" left="6"/>
    </style>
    <bind style="example" type="region" key="Panel"/>
    </synth>

Maybe you are looking for

  • Call going to bluetooth volume even when bluetooth switched off..

    More often than not during incoming or outgoing call the call gets routed through bluetooth even though bluetooth is switched off.This results is call disruptions thereby the other party can't here what i'm saying...This is a new problem that has cro

  • Mac app store doesn't memorize partial download

    Hi, this isn't a real discussion but i want a confirmation about the problem written in object. This morning i became downloading a game, then i lost the connection and when it is returned i had to restart the download. This thing is not a problem wi

  • Problem with Nokia 5320 Xpressmusic

    My mobile fell down and nothing happen 4 3 days. But after 3 days, its screen started to blink, i switched it off and switched it on again after a few minutes. And i saw tht the screen became blue. What should i do??? Solved! Go to Solution.

  • RMAN catalog and Target database

    Hi All, Please clarify my below doubts. We have one server "server1" with oracle (catalog database) version 10.2.0.1 I have server "server2", and we have four oracle homes with four oracle users.Each oracle home consist of one database. all database

  • Canali analogici

    Ciao a tutti. Purtroppo sono veramente ignorante e ho bisogno di un aiuto. Sto utilizzando una scheda PCI6024E e vorrei programmarla in Visual Basic 6 (con Measurement studio 6.0). Ho i seguenti problemi: 1- non riesco ad utilizzare i canali digitali