Images darker when added to slideshow

I've recently noticed that photos added to a new slideshow appear — within the slideshow interface and when exported — much, much darker than the original photo. It's as iff the black point for the image has been cranked way up and virtually all detail in the shadows goes to black.
It's been a while since I worked within the slideshow interface of Aperture, so perhaps some small detail of slideshows is eluding me. Has anyone else noticed this kind of behavior and is there an easy solution?
Thanks!

tnx for the info Test Screen Name,
You were right about the resolution, the smaller pic had 300dpi while the bigger one have a resolution of 96dpi,
Why i didn't tough of that
This explains why one of the image is 3x bigger than the others.
I'm not sure why paint switch the resolution like that.
Now i know to work with image in inch / mm
Thanks again for you help, you saved me alot of time trying to figure that one out.
Yan

Similar Messages

  • Images rotated when added in slideshow widget

    When using a slideshow widget in Muse, why are added images
    displayed 90 or 180 degrees from the original image?

    Thanks for the quiuck reply - it is really appreciated.  Further investigation resulted in discovering that only photos from my iPad are being rotated.  Still don't know why.  All other photos are OK.  The iPad photos took a circuitous route getting to my computer - but don't know why that should matter.  Guess I'll have to delve into the HTML code to see if I can find the problem.  If not, I may need further help!

  • Slideshow image resizing when adding new images

    I am creating a series of slideshows on multiple pages. I created one slide show using the "basic" slideshow and resized it to the dimensions and settings I wanted. I have many pictures all of different proportion, therefore, I selected the "fill frame proportionally" so they would all fit the dimension I set. I wanted to use this first slideshow as a template for all of the rest. I added images to this first slideshow with no problems. All of my different sized images scaled or cropped to fit within the dimension I set. The problem comes in when I do two things: 1) When I add other images of different dimensions to this same slideshow gallery, they come smaller that the intended dimensions I set previous. I check the setting and it is still on "fill frame proportionally" similar to the first batch of pictures. 2) The second issue is when copy this slideshow as a template to other pages. When I try to replace or add to the slideshow gallery, the images come in cropped or smaller rather than filling the frame. Again, the settings are still the same from my very first slideshow that worked just as i intended.
    I could resize all the images to all the same dimensions using another program like photoshop, but that is another step that is very tedious and it would seem that it should be something built into Muse.
    Is there a way around this?. Am I doing something wrong? Or is this just one of those glitches that happens with Muse? I appreciate any help that I can get.
    Thanks!

    Hi, I got it to work like this:
    Using background colours in Photoshop so that all sizes are the same in pixels. Then manually adjusting thumbnails by double-clicking on them so that a red square appears.
    Cheers,
    Elsemiek
    Op 26 dec. 2014, om 00:50 heeft MediaGraphics <[email protected]> het volgende geschreven:
    slideshow image resizing when adding new images
    created by MediaGraphics <https://forums.adobe.com/people/MediaGraphics> in Adobe Muse Bugs - View the full discussion <https://forums.adobe.com/message/7043933#7043933>
    Hi there Elsemiekagain,
    I had to fiddle around with my slide show to get it to work. That is, it worked at first, then went funky, and I had to fiddle. So much fiddling that I can't possibly know what actually made it start to work again.
    And to some degree, this is the way that I find Muse to be in general. That it requires finessing to get it to work as expected. This adds a good deal of time to every development project, though I am getting better at this with practice and experience.
    Most of it is not even things that could be easily put in words as instructions, as many are nanced. But in fairness, this version of Muse is a complete code re-write this year. So we do need to cut Adobe some slack, and give the team time to iron things out.
    If the reply above answers your question, please take a moment to mark this answer as correct by visiting: https://forums.adobe.com/message/7043933#7043933 and clicking ‘Correct’ below the answer
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page:
    Please note that the Adobe Forums do not accept email attachments. If you want to embed an image in your message please visit the thread in the forum and click the camera icon: https://forums.adobe.com/message/7043933#7043933
    To unsubscribe from this thread, please visit the message page at , click "Following" at the top right, & "Stop Following"
    Start a new discussion in Adobe Muse Bugs by email <mailto:[email protected]ftware.com> or at Adobe Community <https://forums.adobe.com/choose-container.jspa?contentType=1&containerType=14&container=47 59>
    For more information about maintaining your forum email notifications please go to https://forums.adobe.com/thread/1516624 <https://forums.adobe.com/thread/1516624>.

  • Image darker when saved than on-screen buffered image

    Hi,
    Here is my little application. I am trying to simulate an rgb screen look based on image data. ie, the new image is an exaggerated tv look of the original image.
    When I try to encode/save a jpeg from my buffered image, the saved image is darker (colours also seem to be different) than what i see in my application frame. I like what I see in the JFrame and would like to have that saved. I am just an artist hack so excuse the cobbled together code. I have also included the original image, the image as it is saved, and an image as a rough approximation of the image in the JFrame.
    In the code you will see I have tried different ways to encode the image (commented out)
    Any ideas about this issue or how to make this program more sound please let me know.
    the code:
    http://zukanter.com/javaImageTest/displayImageRGBBuffer.java
    the orignal loaded into the appp:
    http://zukanter.com/javaImageTest/myPic.jpg
    the saved image:
    http://zukanter.com/javaImageTest/_003.jpeg
    the image as it is in the application window:
    http://zukanter.com/javaImageTest/_003Screen.jpg

    Hi
    My 2c.
    I`ve had a quick look at your code and the output and I`m assuming that the vertical RGB lines are what you intended.
    Jpeg works in blocks, and averages pixel valiues across them.
    If introducing those primaries into the graphic and then compressing it makes it darker that`s likely the result of the primary colours being averaged by the compression algorithm.
    You should look at resizing the image first, drawing it onto an offscreen buffer, then doing an overlay (alpha channel) with the primary colors instead, IMHO.
    regards

  • Image Disappears when Adding Adjustments in Aperture 3

    I am experiencing odd behavior when using the adjustment tools in Aperture 3. I tried to crop an image and instead of staying on screen for me to finish the adjustment, the image disappeared. I was able to save it by undoing. I created a version of the image and I could crop that OK. I have Add New Version when Making Adjustments checked but it does not seem to be working.

    I've had a similar "disappearing" image problem when trying to apply the retouch tool. I don't have the "create version when applying adjustments" preference checked though. Hopefully these issues are additional 3.0 bugs that will get fixed in 3.0.1. Be sure to report the issue to Apple using the "Aperture > Provide Aperture Feedback" menu item.

  • Low quality image when adding to iMovie

    I have 2 movies that I want to remove some parts, but when adding to iMovie, it changed some video adjustments to a worst quality image.
    This 2 movies had already bad image quality from the source, because they have very darkness frames and were filmed in VHS.
    But they were reasonable to see, from Apple TV.
    Now in iMovie they became worst.
    The source is H.264, AAC 1280x720 FPS 23,97
    The source is H.264, AAC 1024x576 FPS 23,97
    What can I do ?

    Available ?
    More or less.
    And how can I send a sample ?
    Depends on the size of the sample and what space is available to you on a server. You can usually send snippets as e-email attachments up to about 10 MBs. If you have a MobileMe account, server space provided by your ISP, or other server space provided by a third-party service, then you can upload larger samples for FTP or webpage use and simply post/send me the URL, reference movie, or QTL.
    When the movie goes to iMovie, the brightness decreases and the contrasts became more darkness.
    Have you tried playing with the built-in "Video Adjustments" at all? Not the easiest thing to use but you can make some adjustments using it. In such work, "Less is usually best." By this I mean you should apply as little adjustment as you can get away with using.
    Normally I would start with a "Level" adjustment. While there is an "Auto" button you can press to get some idea as to what the application says you need for a particular frame or range of frames, this setting can vary drastically depending on the individual frame being tested. So it would usually be a good idea to expand your clip and "test" a number of frame ranges to see what is a "typical" setting for the clip. If the settings are fairly uniform, you can go with the suggested setting or something reasonably close to save "blowing out" highlights. On the other hand, if the settings vary drastically, you my either wish to select an "in-between" setting of your own manually, or split the clip into sub-segments which can then be adjusted individually. NOTE: the auto "Level" adjustment does not affect other settings -- only the clipping points and does not include controls for half or quarter tone adjustments. Still it is my preferred starting point for making adjustments.
    You can also try adjust the "Exposure" setting. This will tend to allow you to adjust the "Brightness" and "Contrast" uniformly by centering your color channel histogram but can easily be overdriven. "Brightness" and "Contrast" can, of course, be adjusted individually if you prefer but you may find the "Exposure" control easier to handle where the content is more uniform with regard to shadows and highlights. Lastly, adjustment of any of the previously mentioned controls will usually have some effect on color saturation. While they do not change the actual setting, they do tend to desaturate color as the other controls "lighten" the cast of your frame images. So, don't be surprised if the results "wash out" somewhat and you may need to touch up the saturation. But, once again, go easy as the saturation doe not increase uniformly and tends to "blotch" highlights and/or create color shifts in these areas.
    About the only controls left are the individual color channel levels. I don't normally recommend playing with these arbitrarily as they then to shift the color cast/white balance of your content. As to the White balance itself, the "eyedropper" had little or no effect on the content I tested so I assume the it either did not work as described or the sample white/grey points I used for sampling did not require adjustment. As to the Balance Wheel," it does work well but like the color channel adjustments may cause more harm than help most novice users.

  • Objects and Images Printing Much Darker When Sent to Press

    So, I'm sure this has been addressed multiple times in many other threads, but for the life of me, I can't find one that addresses my specific issues.  So here goes...
    When producing ads or catalog layouts with drawn objects, be it solid or gradient filled, or when adding color photos to the design, it always happens that everything turns out much darker on their end.  It's frustrating and I don't know if it's something I'm not doing, or if it's something in the offset printing process...  Advice would be appreciated.
    I am currently using ID CS5.5, and am an intermediate to advanced user, but when it comes to color management...I'm lost.
    It's disheartening sending out great ads and layouts when they come out so crappy on their end.  (PS...forget about asking for proofs, cause I've asked for years on projects like mass catalog printings, and they just don't do it...so I need to work around that).  Thanks guys and gals!

    its one of those "how long is a piece of string" questions.
    as pete said, colour calibration with your monitor may be a factor, but there are many other items to consider, such as:
    * the quality of the light in the room in which the monitor is in;
    * whether the images being printed are beyond the max ink weight for the paper (an uncoated stock will have a lower max ink weight than a coated stock)
    * what RGB-CMYK conversion is being used. to demonstrate this, try this - take an RGB pic, make it CMYK using the SNAP newsprint profile and save it as 1.tiff. then, go back to the original RGB pic and make it CMYK using the COATED FOGRA 39 profile and save it as 2.tiff. now, place both pics into indesign and go to the seps preview and compare the picture qualities side by side.
    there are also issues which may be present at the printer's end, but I won't speculate as to what they may or may not be doing. instead, it is worth having a chat to your providers. Providers interested in your work normally take the time to provide as much information as they can.
    it seems to me that if images are constantly coming out darker, that the max ink weights for the stocks being printed on are being exceeded. when submitting ads/prints, are you using the ink limit preview in the seps preview panel and checking it against the max ink weight suggested by the publisher or printer?
    my buck o'five.
    colly

  • How do you shuffle the image order when creating a new slideshow in apterture 3?  i would like to do this automatically when creating a new slideshow.  i see how you do it when you just play a slideshow.

    how do you shuffle the image order when creating a new slideshow in apterture 3?  i would like to do this automatically when creating a new slideshow.  i see how you do it with presets when you just play a slideshow, but i don't see an option to randomly shuffle the slide order when you create a new slideshow.  i know you can sort it by different fields, but i want it to be random.  thanks.

    If you want to rearrange images in random order you can try an AppleScript:
    retrieve a list of selected images from Aperture
    shuffe the list properly
    create an album in Aperture and add the images from the list to the album (make sure that the album set to be orederd manually)
    Here  is a sample script that shuffles the selected images and displays them in random order in Full Screen Mode:
    on removeItem(ims, i)
      -- remove the item at position "i" from a list ims
              if ims is {} then return {}
              if (length of ims is 1) then return {}
              if i < 2 then return rest of ims
              if (i = length of ims) then return (items 1 thru (i - 1) of ims)
              if i > (length of ims) then return ims -- should be error?
              return (items 1 thru (i - 1) of ims) & (items (i + 1) thru (length of ims) of ims)
    end removeItem
    on shuffle_items(ims)
      -- shuffle the items of the list "ims" randomly
              local numitems, ims_shuffled, nextrest, nextpick, i
              set numitems to length of ims
              if length of ims < 2 then return ims
              set ims_shuffled to {}
              set nextrest to ims
              repeat until nextrest is {}
                        set i to (random number (numitems - 1)) + 1
                        set nextpick to item i of nextrest
                        set beginning of ims_shuffled to nextpick
                        set numitems to numitems - 1
                        set nextrest to removeItem(nextrest, i)
              end repeat
              return ims_shuffled
    end shuffle_items
    on shuffleIms()
      -- retrieve the selected images from Aperture
      -- and display them in random order in full screen mode
              local imageSel, shuffled, i
              tell application "Aperture"
      activate
                        set imageSel to (get selection)
                        set shuffled to my shuffle_items(imageSel)
                        set fullscreen to true
                        if imageSel is {} then error "Please select some images."
                        repeat with i from 1 to count of shuffled
                                  reveal {item i of shuffled}
      delay 3 -- chnage that to the time you want
                        end repeat
                        set fullscreen to false
                        return shuffled
              end tell
    end shuffleIms
    shuffleIms()
    Some more code snippets to go from here:
    To create an album:
                        tell library 1
                                  if not (exists album "shuffledAlbum") then
      make new album with properties {name:"shuffledAlbum", image version:shuffled}
                                  end if
                        end tell
    And to add the images from the shuffled list to the album:
                        repeat with i from 1 to count of shuffled
                                  duplicate item i of shuffled to album "shuffledAlbum"
                        end repeat
    Regards
    Léonie

  • Why does Bridge blow out thumbnails when adding new images?

    Using Win 7 (64b) with CS6 and Bridge 5.0.2.4 x64 (CS6). I use Bridge in my workflow to catalog and tag images. I added 7000+ older photos in various file formats, Canon CR2, TIF, JPG, and PSD to my single directory containing all shots. As Bridge created thumbnails for all newly added shots, everything was looking good but then I noticed Bridge went back and lightened many of the thumbnails by ~ 1 EV. A few images were lightened by as much 2-3 EV and unusable (non-identifiable images).
    When launching the non-identifiable image in Photoshop CS6 from bridge, tonal values and exposure are just fine. The images can be edited  and saved. Tried solving by deleting image from directory. then restoring it (with different filename) before restarting Bridge. In one case, it worked. The newly renamed and regenerated thumbnail was fine. In other cases, no matter what I do, the image blows out.
    This is quite frustrating. Thumbnails just plain look bad. Don't have a lot more hair to pull.
    Thanks for any help

    Hmmm. That's not very convenient and it doesn't prevent my mistake. At the cost of a lot more typing, it can prevent other scripts from accidentally referencing or colliding with your variable names, but it doesn't prevent you from accidentally colliding with other people's variables if you leave off the object qualifier when you are typing.
    When I saw a reference to namespaces in something I was reading, It thought it was more like real namespaces (e.g. C++ namespaces) where you define a scope where all declared or referenced variables are automatically in that namespace unless they are explicitly referenced/declared otherwise. Does JavaScript not have that capability?
    It would be more like this:
    namespace MyProgram {
    var i = 3;
    // lots of other code here
    With a real namespace, "i" wouldn't be a global variable. It's real name/declaration would be MyProgram.i or MyProgram::i depending upon the syntax.
    Does JavaScript not have real namespaces?
    I get that I can explicitly declare everything to a scope of MyProgram to simulate some benefits of namespaces, but that's a lot of extra typing and, presumably a bunch of extra work for the interpreter since there's at least one extra dictionary lookup for every variable or function reference.
    --John

  • When adding Custom Text to a slideshow in Aperture, I can no longer centre the text in the text box. Is there something I am missing? I am running Aperture 3.6 on Yosemite. Any ideas gratefully received, thanks.

    When adding Custom Text to a slideshow in Aperture, I can no longer centre the text in the text box. Is there something I am missing? I am running Aperture 3.6 on Yosemite. Any ideas gratefully received, thanks.

    Which theme are you using?
    When I am adding text in a slideshow, I found, that it will depend on the theme, if the text will be centered or flushed left.  The Classic and Ken Burns theme are centering the text, the newer themes will present it flushed left.
    I found no way to select a custom justification for the text.

  • Images are very dark when printing??

    Hi all, I'm new to printing with photoshop but having trouble and hope someone can help?...shooting in raw and RGB colour, converting images to jpg. In photoshop and they look great on screen, but skin tones and colours look really dark when printed?? What am I missing

    In addition to calibrating your screen which will help with the colors, the odds are your display is turned up way too bright. Depending on the calibration system you get, it may allow setting the screen brightness to an optimum brightness. But you can reduce the brightness now even before you calibrate the display. Try 1/2 of the full luminance to see if that makes the display look more like your dark prints...

  • Lost + and - when adding custom book images

    How do I go about getting the + and - signs that are the
    default in the TOC to the left of the open and closed book images?
    They were there with the default skin book images, though when I
    changed to a custom open and closed book graphic (both same size as
    the original), the + and - signs that are usually there
    disappeared.

    Hi ClubHans
    You probably don't realize it, but you have answered your own
    question!
    The fact is, in a WebHelp system, the book and page icons are
    simple images. Either the image contains the + or - symbol or it
    doesn't. If you want the symbols, you will need to either edit your
    existing images to include them, or substitute images that contain
    the symbols as part of the image.
    Cheers... Rick

  • Preview shrinks JPG's when added to PDF

    I have an existing .PDF file, and if add a new page, then drop a .JPG file onto it, the picture shows very small with a large white border. In the Slideshow view it also appears very small.
    If I open the .JPG on it's own in Preview, the picture shows as the correct size, but if I save it as a .PDF then re-open it has shrunk again. If I look at the info for the file, the dimensions are 612 * 792, whereas the .JPG file is 969 * 1331.
    Why does Preview shrink .JPG pictures when added to an existing PDF, or saved as a new .PDF?

    Edited to add - sorry, my description was slightly wrong.
    If I open a single .JPG in a new Preview, and save it as a .PDF, the dimensions are fine. The issue only occurs if I try to add .JPG's to existing PDF's.
    It also occurs if you use the shell to convert a single JPG image, i.e.
    "/System/Library/Printers/Libraries/./convert" -f /users/me/downloads/cvg06300162.jpg -o /users/me/downloads/cvg06300162.pdf
    - this gives the reduced size image as well.

  • TableSorter errors when adding new data

    so here is the deal:
    I am using the TableSorter.java helper class with DefaultTableModel
    from: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
    It works great when the data is static and I get it for the first time. however, occationally, when adding new data I get a NullPointerException error.
    in use:
    DefaultTableModel.addRow()
    DefaultTableModel.removeRow() and
    DefaultTableModel.insertRow() methods.
    Error:
    java.lang.ArrayIndexOutOfBoundsException: 5
         at com.shared.model.TableSorter.modelIndex(TableSorter.java:294)
         at com.shared.model.TableSorter.getValueAt(TableSorter.java:340)
         at javax.swing.JTable.getValueAt(Unknown Source)
         at javax.swing.JTable.prepareRenderer(Unknown Source)...
    code problem I:
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        }code problem II:
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        }TableSroter class:
    package com.shared.model;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    * TableSorter is a decorator for TableModels; adding sorting
    * functionality to a supplied TableModel. TableSorter does
    * not store or copy the data in its TableModel; instead it maintains
    * a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col))
    * they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way,
    * the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model,
    * just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then
    * passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's
    * rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the
    * setTableHeader() method or the two argument constructor, the
    * table header may be used as a complete UI for TableSorter.
    * The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition,
    * a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns
    * and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
    * NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns
    * and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
    * that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound
    * sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that
    * first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    public class TableSorter extends AbstractTableModel
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        public TableSorter()
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel)
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader)
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState()
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel()
            return tableModel;
        public void setTableModel(TableModel tableModel)
            if (this.tableModel != null)
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null)
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader()
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader)
            if (this.tableHeader != null)
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer)
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null)
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer())
        public boolean isSorting()
            return sortingColumns.size() != 0;
        private Directive getDirective(int column)
            for (int i = 0; i < sortingColumns.size(); i++)
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column)
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column)
            return getDirective(column).direction;
        private void sortingStatusChanged()
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null)
                tableHeader.repaint();
        public void setSortingStatus(int column, int status)
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE)
                sortingColumns.remove(directive);
            if (status != NOT_SORTED)
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size)
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE)
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting()
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator)
            if (comparator == null)
                columnComparators.remove(type);
            else
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column)
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null)
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType))
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel()
            if (viewToModel == null)
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++)
                    viewToModel[row] = new Row(row);
                if (isSorting())
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        private int[] getModelToView()
            if (modelToView == null)
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++)
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount()
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount()
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column)
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column)
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column)
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column)
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable
            private int modelIndex;
            public Row(int index)
                this.modelIndex = index;
            public int compareTo(Object o)
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();)
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null)
                        comparison = 0;
                    } else if (o1 == null)
                        comparison = -1;
                    } else if (o2 == null)
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0)
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener
            public void tableChanged(TableModelEvent e)
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting())
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW)
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null)
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter
            public void mouseClicked(MouseEvent e)
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1)
                    int status = getSortingStatus(column);
                    if (!e.isControlDown())
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority)
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y)
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth()
                return size;
            public int getIconHeight()
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer)
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column)
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive
            private int column;
            private int direction;
            public Directive(int column, int direction)
                this.column = column;
                this.direction = direction;
    }any input will be appreciated.
    thanks
    Peter

    The code you posted doesn't help us at all. Its just a duplicate of the code from the tutorial. The custom code is what you have written. For example do you update the TableModel from the Event Thread? Do you update the SortModel or the DefaultTableModel? If you actually provide your test code and somebody has already downloaded the sort classes, then maybe they will test your code against the classes. But I doubt if people will download the sort classes and create a test program just to see if they can duplicate your results (at least I know I'm not about to).

  • How can I make signature darker when I print the report?

    I need to put my manager's signature on the report. The signature is too light, How can I make it darker when I print the report?
    I used file link and OLE, both did't make it.
    Thanks.

    No way to do it directly in the report. You need to work with signature image file using any graphic software to increase its contrast. The easiest probably would be to use Paintbrush and change the image to black-and-white, then save back as jpeg file.

Maybe you are looking for

  • Where can I get a PCI USB card for OSX 10.5 that will coat as little as one for a common PC?

    Every accessory for an Apple product cost way more than it should! I want to find a PCI USB hub that has a OSX driver, so I can install it in my G$ AGP 400Mhz, upgraded to a 1.6 Ghz with 1.25 Gb memory

  • Relationship between logical system and a client

    Hi, Our internal notes say that, in order to create a new client, I must do the following: 1. Create a logical system using BD54. The client name must be SID + "CLNT" + number. In my case, this would be NSPCLNT100. 2. Create a client using SCC4. Ques

  • Procument through Internal Order

    Hi We got few real internal orders (overhead) where it got a budget value and a settlement rule to be settled to a cost center When raising PO, we use  F (Internal Order) as the account assignment adn the double entry is passed to debiting as asset a

  • RMAN Tape Error

    Hello, I need help to fix the following issue with RMAN Backup; ORA-19506: failed to create sequential file, name="Datafile6_DatabasePRD", parms="" ORA-27028: skgfqcre: sbtbackup returned error ORA-19511: Error received from media manager layer, erro

  • CS4 Serial Number coming up invalid after years of use

    I purchased the CS4 Master Collection some time ago, I know it is really out dated, but it works for me , now I am being prompted to enter my serial number when opening the programs (which worked yesterday???). When I put in my PAID for number I'm ge