Focus problem with panels

Hello,
I am having a panel which contains many panels. While tabbing, I do not want the focus to go into those panels. Any suggestions??

Take a look at the Focusing API, particularly FocusTraversalPolicy.
Graeme

Similar Messages

  • Significant Computer Window Focus Problem With Verizon Access Manager 7.7.1.0 (2707e)

    With the newly released Verizon Access Manager 7.7.1.0 (2707e) there is a significant computer focus problem with it.
    What I mean by this is that if I am using ANY application on my computer with the Verizon Access Manager minimized to the Windows System Tray, something will go on with the Verizon Access Manager and it steals the window focus - I am unable to work in the other application unless I click on the application to use it again.  
    An example of this would be my typing to post a message in this forum.  Something occurs in the Verizon Access Manager and my typing is rendered useless unless I click with my mouse on the browser window to be able to use it again.
    I'm highly suspecting whenever networks are coming and going in the Access Manager is when the problem occurs.
     This problem did not exist in the previous version of the Access Manager I was using.
    This is extremely annoying - please issue a fix for this ASAP!

    I have found by not minimzing the Verizon Access Manager 7.7.1.0 (2707e) the focus problem does not occur - it appears to be a problem when the app is minimzed to the system tray.

  • BC4J temporary focus problem with JDK 1.4.2

    Hello all,
    we have got a tricky problem with BC4J (Oracle JDeveloper 9.0.3.2)
    using the JDK 1.4.2 (Sun):
    There is a JFrame with a JMenuBar, containing a BC4J data panel with the controls on it.
    Now if one enters a value in a control and now directy clicks on the JMenuBar, the control
    gets a focusLost event but is not validated through BC4J and not set to the model.
    If a commit would be called from the menue the entered data is lost !
    In case of the JDK 1.3.1_02, which comes with the JDeveloper, everything works fine: after
    the focusLost event, the data is validated and set to the model.
    We have investigated the problem more deeper. The difference between
    the 1.4 and 1.3 is, that the 1.4 creates a temporary FocusEvent and the 1.3 not.
    We stepped up the stack into the Method oracle.jbo.uicli.jui.JUSVUpdateableFocusAdapter.focusLost:
    the temporary focusEvent causes this method to return and to do nothing:
    * Performs a setAttribute() on the control binding to save the changes made by
    * the control to the attribute value.
    public void focusLost(FocusEvent e)
    if (e.isTemporary())
    return;
    JUCtrlAttrsBinding binding = (JUCtrlAttrsBinding)mAttrBinding;
    I think it is a general problem with 1.4, because many things dealing with focus
    have been expaned and changed.
    Is this a bug or should BC4J not be used with 1.4 ?
    Greetings

    9.0.3.2 is not tested with JDK 1.4, so issues like this are not a surprise.
    However we will test this with our current development branch (which is being tested on JDK 1.4x) and verify if the behavior is reproducible.

  • Focus Problem with JTree and Menus

    Hi all,
    I have a problem with focus when editing a JTree and selecting a menu. The problem occurs when the user single clicks on a node, invoking the countdown to edit. If the user quickly clicks on a menu item, the focus will go to the menu item, but then when the countdown finishes, the node now has keyboard focus.
    Below is code to reproduce the problem. Click on the node, hover for a little bit, then quickly click on the menu item.
    How would I go about fixing the problem? Thanks!
    import java.awt.Container;
    import java.awt.GridLayout;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    public class MyTree extends JTree {
         public MyTree(DefaultTreeModel treemodel) {
              setModel(treemodel);
              setRootVisible(true);
         public static void main(String[] args) {
              JFrame frame = new JFrame();
              JMenuBar bar = new JMenuBar();
              JMenu menu = new JMenu("Test");
              JMenuItem item = new JMenuItem("Item");
              menu.add(item);
              bar.add(menu);
              frame.setJMenuBar(bar);
              Container contentPane = frame.getContentPane();
              contentPane.setLayout(new GridLayout(1, 2));
              DefaultMutableTreeNode root1 = new DefaultMutableTreeNode("Root");
              root1.add(new DefaultMutableTreeNode("Root2"));
              DefaultTreeModel model = new DefaultTreeModel(root1);
              MyTree tree1 = new MyTree(model);
              tree1.setEditable(true);
              tree1.setCellEditor(
                   new ComponentTreeCellEditor(
                        tree1,
                        new ComponentTreeCellRenderer()));
              tree1.setRowHeight(0);
              contentPane.add(tree1);
              frame.pack();
              frame.show();
    import java.awt.FlowLayout;
    import java.util.EventObject;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultTreeCellEditor;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.DefaultTreeModel;
    import javax.swing.tree.TreeCellEditor;
    import javax.swing.tree.TreeCellRenderer;
    public class ComponentTreeCellEditor
         extends DefaultTreeCellEditor
         implements TreeCellEditor {
         private String m_oldValue;
         private TreeCellRenderer m_renderer = null;
         private DefaultTreeModel m_model = null;
         private JPanel m_display = null;
         private JTextField m_field = null;
         private JTree m_tree = null;
         public ComponentTreeCellEditor(
              JTree tree,
              DefaultTreeCellRenderer renderer) {
              super(tree, renderer);
              m_renderer = renderer;
              m_model = (DefaultTreeModel) tree.getModel();
              m_tree = tree;
              m_display = new JPanel(new FlowLayout(FlowLayout.LEFT));
              m_field = new JTextField();
              m_display.add(new JLabel("My Label "));
              m_display.add(m_field);
         public java.awt.Component getTreeCellEditorComponent(
              JTree tree,
              Object value,
              boolean isSelected,
              boolean expanded,
              boolean leaf,
              int row) {
              m_field.setText(value.toString());
              return m_display;
         public Object getCellEditorValue() {
              return m_field.getText();
          * The edited cell should always be selected.
          * @param anEvent the event that fired this function.
          * @return true, always.
         public boolean shouldSelectCell(EventObject anEvent) {
              return true;
          * Only edit immediately if the event is null.
          * @param event the event being studied
          * @return true if event is null, false otherwise.
         protected boolean canEditImmediately(EventObject event) {
              return (event == null);
    }

    You can provide a cell renderer to the JTree to paint the checkBox.
    The following code checks or unchecks the box with each click also:
    _tree.setCellRenderer(new DefaultTreeCellRenderer()
      private JCheckBox checkBox = null;
      public Component getTreeCellRendererComponent(JTree tree,
                                                    Object value,
                                                    boolean selected,
                                                    boolean expanded,
                                                    boolean leaf,
                                                    int row,
                                                    boolean hasFocus)
        // Each node will be drawn as a check box
        if (checkBox == null)
          checkBox  = new JCheckBox();
          checkBox .setBackground(tree.getBackground());
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
        checkBox.setText(node.getUserObject().toString());
        checkBox.setSelected(selected);
        return checkBox;
    });

  • Focus problems with Canon 1D Mark III

    I have been having problems with my 1D Mark III, it take an unusually long time to focus.  The problem is especially prevalent indoors.  I am using a Canon 24 to 70 IS lens. 

    I have had the camera since it first came out, however I also aready had a Canon 20D at the time.  I seemed to do better with the 20D.  I recently bought a Canon 7D and it focuses much faster.  I am very displeased with the 1D Mark III. 
    I am an experienced photographer, photography is a passion I have studied and pursued.  The 20D was my first DSLR, prior to that I shot with a Nikon 2020 film camera. 
    The problem with the 1D Mark III is that it takes an unusually long time to autofocus.  Due to this, I usually relied on the 20D.  When I bought the 7D I retired the 20D and paired the new camera with he 1D for gigs (weddings, parties etc.).  It is frustrating to attempt shots with the camera and have subjects wait for me to shoot.

  • [Solved] gsimplecal auto focus problem with openbox+tint2

    I'm using these apps described above.
    Well, after I click the clock in tint2, the gsimplecal shows, but, it won't get focus automatically, which annoyed me a lot.
    I've already set <focusNew>yes</focusNew> in my openbox/rc.xml.
    Also, I noticed that even started from terminal, the gsimplecal window won't get the focus.
    Is this a bug (or f**king feature) of gsimplecal? I installed it yesterday by yaourt -S gsimplecal-git.
    Thank you.
    This problem is solved by adding a per-application setting to openbox, as described in the gsimplecal wiki.
    Adding the <focus>yes</focus> is enough, it doesn't need that much.
    Last edited by XeCycle (2011-04-01 10:43:05)

    This seems to be related to the skip_taskbar window hint (set to true by default), as of gsimplecal v0.6 you can override it with the following in your config:
    mainwindow_skip_taskbar = 0

  • Problem with panels

    i have a JFrame with layout set to null
    i have one jpanel with border layout ,showing a jtree
    another panel with gridbaglayout is attached to the frame
    when a node on the tree is clicked , changes are made to the second panel with lots of components.but the change in the second panel is reflected only when the jframe is resized,ie its not displayed automatically.what can be the problem?im using jdk6.

    try panel.updateUI();No. That method is used for a Look and Feel change.
    Use:
    panel.add(...);
    panel.revalidate();

  • Problem with panel resize option

    Hi all,
    I am working on an application which i want to run on all the different resolutions. So, i searched the whole LV forum to get the solution for my problem.
    after going through many related discussions i found that one should develop the app in the min resolution which it should support and in the VI properties the option for panel resizing should be tick marked.
    i did exactly the same, but still couldn't get it worked for my application.
    i am developing my app on 1024*768 resolution. it runs fine on the same resolution if i don't tick mark the resizing option. but, when i tick mark the option and run the app on the same resolution, it crops some part from the bottom.
    I am attaching the picture of the interface when run with resizing option and without it.
    Pls look into the prob and let me know how can i make it work?
    Thanks,
    Ritesh 
    Attachments:
    Interface_With proportions.JPG ‏95 KB
    Interface_Without proportions.JPG ‏103 KB

    For a GUI of this nature, there is no easy answer to this problem.  Search the forums for "large font" to get many examples of how people have solved this issue.  I usually bite the bullet and handle all resizing myself.  An example of this can be found here.
    Since you want to cover the entire workspace, you need to know what this is.  There are two VI server methods which will give you pieces of this information.  Display:All Monitors will give you the valid coordinates for all monitors attached to the computer.  Display: Primary Workspace will give you the useable workspace of the primary monitor.  This does not include the space used by the Windows taskbar (and, I assume, the GNOME, OS X, or KDE equivalents, but have not verified this), so is different from the area given by the first property.  You can fairly easily determine which display is the primary workspace by checking bounds, but do not assume that the taskbar is on bottom of the display when you do this.
    If you have problems finding information or something is not clear, let us know.
    Message Edited by DFGray on 03-03-2010 08:10 AM
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • Lightroom 4.3 - Focus problems with images viewed on 2nd monitor

    I had this problen on 4.2 and heard there was a fix, but alas the problem has cropped up for me agian.  2nd monitor in Loupe Mode.  It doesn't seem to render the image, it's just soft, on the verge of pixalation. The quickest solution is to quit LR and re-satrt and it works for a while.
    Lightroom version: 4.3 [865747]
    Version: 10.6 [8]
    Application architecture: x64
    Logical processor count: 4
    Processor speed: 2.6 GHz
    Built-in memory: 8192.0 MB
    Real memory available to Lightroom: 8192.0 MB
    Real memory used by Lightroom: 544.8 MB (6.6%)
    Virtual memory used by Lightroom: 1049.8 MB
    Memory cache size: 235.6 MB
    Maximum thread count used by Camera Raw: 2
    Displays: 1) 1680x1050, 2) 1600x1200
    Any ideas?

    Same problem.   Not a soloution, but this may be relevant.
    http://forums.adobe.com/message/4782916#4782916
    Alan

  • Focus issue with CardLayout (Java 2 SDK, Standard Edition 1.4.0_01)

    I am having an issue with focus and CardLayout with Java 2 SDK, Standard Edition 1.4.0_01. I have created a small sample application to illustrate my problem. In general, I am trying to create a "Wizard" that the user will enter information and then press a "Next" button to proceed to the next step.
    When the first card is displayed, the focus is on the first text field as expected.
    When I go to the next card by clicking "Next", the focus is not on the text field that has requested it (through the requestFocusInWindow method). The focus is on the "Cancel" button, which is the next component to receive focus after the "Next" button on that panel. I do notice that if I use my mouse to bring focus to the window the text field will gain focus.
    Similarly, when I proceed to the last card, the focus is not on the "Finish" button until the mouse moves over the window.
    Is there something I am doing wrong or is there a bug with focus and CardLayout?
    One other problem I have noticed is that the buttons no longer respond to the "Enter" key press and instead respond to the space bar. Any suggestions as to why this is the case?
    Thanks,
    S.L.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class CardWindow extends JFrame implements ActionListener {
    public CardWindow() {       
    setTitle("Focus Problems with CardLayout");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    cards = new JPanel();
    cardLayout = new CardLayout();
    cards.setLayout(cardLayout);
    cards.add(createFirstNamePanel(), "FirstNamePanel");
    cards.add(createLastNamePanel(), "LastNamePanel");
    cards.add(createFullNamePanel(), "FullNamePanel");
    getContentPane().add(cards,BorderLayout.CENTER);
    getContentPane().add(createButtonPanel(), BorderLayout.SOUTH);
    resetButtonPanel();
    pack();
    private JPanel createFirstNamePanel() {
    JPanel panel = new JPanel();
    JLabel lblDescriptionProjectName = new JLabel("Please enter your first name:");
    txtFirstName = new JTextField(20);
    panel.add(lblDescriptionProjectName);
    panel.add(txtFirstName);
    return panel;
    private JPanel createLastNamePanel() {
    JPanel panel = new JPanel();
    JLabel lblDescriptionProjectName = new JLabel("Please enter your last name:");
    txtLastName = new JTextField(20);
    panel.add(lblDescriptionProjectName);
    panel.add(txtLastName);
    return panel;
    private JPanel createFullNamePanel(){
    JPanel panel = new JPanel();
    lblFullName = new JLabel();
    resetTextOnFullNamePanel();
    panel.add(lblFullName);
    return panel;
    private JPanel createButtonPanel() {
    buttonPanel = new JPanel();
    btnPrevious = new JButton("< " + "Back");
    btnPrevious.setMnemonic('B');
    btnPrevious.addActionListener(this);
    btnNext = new JButton("Next" + " >");
    btnNext.setMnemonic('N');
    btnNext.addActionListener(this);
    btnCancel = new JButton("Cancel");
    btnCancel.setMnemonic('C');
    btnCancel.addActionListener(this);
    btnFinish = new JButton("Finish");
    btnFinish.setMnemonic('F');
    btnFinish.addActionListener(this);
    buttonPanel.add(btnPrevious);
    buttonPanel.add(btnNext);
    buttonPanel.add(btnCancel);
    buttonPanel.add(btnFinish);
    return buttonPanel;
    private void resetTextOnFullNamePanel(){
    lblFullName.setText("Your name is: " + getFirstName() + " " + getLastName());
    private void resetButtonPanel(){
    Component c[] = buttonPanel.getComponents();
    for(int i = 0; i < c.length; i++){
    c.setVisible(false);
    switch(iWizardStep){
    case FIRSTNAMEPANEL:
    btnPrevious.setVisible(true);
    btnNext.setVisible(true);
    btnCancel.setVisible(true);
    break;
    case LASTNAMEPANEL:
    btnPrevious.setVisible(true);
    btnNext.setVisible(true);
    btnCancel.setVisible(true);
    break;
    case FULLNAMEPANEL:
    btnFinish.setVisible(true);
    break;
    buttonPanel.validate();
    public void actionPerformed(ActionEvent e) {
    Object object = e.getSource();
    if (object == btnNext) {           
    btnNextPressed();
    } else if (object == btnPrevious) {           
    btnPreviousPressed();
    } else if (object == btnFinish) {
    System.exit(0);
    } else if (object == btnCancel) {
    System.exit(0);
    private void btnNextPressed() {       
    switch (iWizardStep) {
    case FIRSTNAMEPANEL:
    setFirstName(txtFirstName.getText());
    break;
    case LASTNAMEPANEL:
    setLastName(txtLastName.getText());
    resetTextOnFullNamePanel();
    break;
    iWizardStep++;
    resetButtonPanel();
    this.cardLayout.next(this.cards);
    switch (iWizardStep) {             
    case LASTNAMEPANEL:
    txtLastName.requestFocusInWindow();
    break;
    case FULLNAMEPANEL:
    btnFinish.requestFocusInWindow();
    break;
    private void btnPreviousPressed() {
    iWizardStep--;
    resetButtonPanel();
    this.cardLayout.previous(this.cards);
    public void setFirstName(String value) {
    firstName = value;
    public String getFirstName() {
    return firstName;
    public void setLastName(String value) {
    lastName = value;
    public String getLastName() {
    return lastName;
    public static void main (String[] args) {
    CardWindow c = new CardWindow();
    c.show();
    private CardLayout cardLayout;
    private JPanel cards, buttonPanel;
    private JTextField txtLastName, txtFirstName;
    private JLabel lblFullName;
    private JButton btnNext, btnPrevious, btnCancel, btnFinish;
    private String firstName = "";
    private String lastName = "";
    private int iWizardStep = 0;
    private static final int FIRSTNAMEPANEL = 0;
    private static final int LASTNAMEPANEL = 1;
    private static final int FULLNAMEPANEL = 2;

    Manfred,
    Thanks for your reply. I tried requestFocus() and it gives the same results. Also Sun's 1.4.0 API (http://java.sun.com/j2se/1.4/docs/api/) mentions the following with respect to the requestFocus() method in the JComponent class:
    Because the focus behavior of this method is platform-dependent, developers are strongly encouraged to use requestFocusInWindow when possible.
    That is why I used requestFocusInWindow.
    S.L.

  • Lightroom 4.2 - Experiencing problems with images viewed on 2nd monitor

    Hi All,
    This problem seems to have started with my updating from 4.1 to 4.2.  I have my second monitor set as Loupe - Normal and Fit.  As I crop an image on my main monitor, the 2nd monitor view does not always change to the cropped view.  If I switch to a different photo and then back to the one I just cropped, the 2nd monitor view will then show the cropped image, but it is almost always blurry.  Sometimes I can click the image in the 2nd monitor view to change to a 1:1 view and it will look sharp, and then click again back to Fit and then it too will be sharp.  Other times I get a message in the 2nd monitor view that says "no image selected" and bouncing back and forth between a different image will correct this.
    This all started off with the majority, but not all cropped images showing as blurred and progressed to what I have described above.  I seriously though I had a focus problem with my camera!
    Is anyone else experinecing this since updating?  Suggestions?
    Below is the suggested information to provide...
    What version of Lightroom? 4.2
    Have you installed the recent updates? Yes, 4.2
    What operating system? Windows 7 Ultimate 64 bit
    What kind(s) of image file(s)? All images are converted to .dng upon import
    If you are getting error message(s), what is the full text of the error message(s)? No error messages.
    What were you doing when the problem occurred? I am in the develop module cropping images etc.
    What other software are you running? Silver Efex Pro 2, but I have had that installed in many prior versions of Lightroom
    Tell us about your computer hardware. How much RAM is installed? 32 GB - Yes, I know - overkill... 
    How much free space is on your system (C:) drive? 119 GB of 223 GB of my solid state drive c:\
    Has this ever worked before? Yes
    If so, do you recall any changes you made to Lightroom, such as adding Plug-ins, presets, etc.? No other changes other than updating to 4.2
    Did you make any changes to your system, such as updating hardware, printers or drivers, or installing/uninstalling any programs?  No, no other changes.
    Thanks!

    Same problem.   Not a soloution, but this may be relevant.
    http://forums.adobe.com/message/4782916#4782916
    Alan

  • Focus problem since jre 1.4.2_11

    Hi,
    I have a awkward focus problem with my java applet. Everything is working fine for jre 1.4.2_10 and all older jre.
    The applet is embedded in a large DHTML application running in a shell which uses the internet explorer for rendering. The applet communicates with the sorrounding java script via LiveConnect (JSObjects). We do use the static versioning, in order to determine the adaequate vm version. The controls are all based upon the swing controls, some are a bit modified.
    Since the introduction of jre 1.5 update 6 the static versioning does no longer work properly. So, when I run my applet with 1.4.2_11 and all the predecessors a strange focus problem occurs.
    When I click outside the applet (focus lost) and the click on a jscript control to get back the focus to the applet, the keyboard input does not reach the applet. The comboboxes do not work anymore. A mouse click is recognized, but the data-list which should appear is only flickering for a moment.
    The only way to get the focus back, is to make a mouseclick on a selfmade datepicker (based on swing, implemeted like a popup-window). For sure, the large DHTML application is guilty, but definitely diffrent VM versions do behave differntly.
    Does anyone has an idea, has seen similar effects or knows what has been changed in the jre between 1.4.2_10 and 1.4.2_11 ??
    Any hint is appeciated! I am lost :-(((
    cheers thorsten

    Two things: Is there a document detailing manual removal of this JRE (and indeed others); you mention different 'builds' of the same JRE, this is the first time I have read that there are sub-versions/releases of a JRE. Where do I find out the available builds of this JRE and others and how they differ?

  • Reader X - Firefox focus problem

    Since I first started using Adobe Reader X, I have had an intermittent keyboard focus problem with Firefox (mostly recently 3.6.14, on Windows 7). If I open a PDF document in a browser tab, sometimes keyboard focus is not returned to Firefox iteself. For instance, I may try to type something into the Firefox search box or URL box, but cannot get keyboard focus there: I cannot get a blinking cursor, though I can select the text there.
    I have not been able to duplicate this problem consistently.
    The workaround is to go to another application entirely, click to move focus there, and then return to Firefox.

    I don't know that "focus" is the right term to use, but I have the same exact problem. Do you have a scroll mouse? I've also noticed that when I scroll within an instance of Adobe Reader that's opened in Firefox using the scroll button on my mouse that the scroll bar does not register the change until I move my cursor over it, then the bar will jump to where it's supposed to be. This is really annoying because I can't quickly judge how far along I am in a .pdf.

  • Need some help with Panel

    NOTE: I am using Flex Builder 3, I'm not sure if just the
    BUILDER is upgraded to 3, or Flex is upgraded as well. There
    doesn't seem to be a Flex 3 forum here or on Adobe labs. I am
    posting here hoping that this is a general Flex problem and someone
    can help me.
    I and trying to make a sub-class of Panel with a series of
    buttons at the top. As the buttons will be outside the container
    area, I chose to put them into the titleBar. using
    titleBar.addChild()
    The problem is, the buttons I place inside the titleBar do
    not get Events.
    In what I think is a related problem. If you adjust the
    "headerHeight" property to say "12" and then have controls
    (button/combo) at the top of the panel's container, the top of
    controls do not get events, but the bottom of the controls do. It
    seems that something in the Panel is blocking events at the top of
    the panel.
    Any ideas?
    Thanks
    -pete

    I have gathered more information about this issue today. it
    seems that the issue is not the panel, but the outer container that
    I embedded it into. The effect I was trying to get was a panel with
    a highlight at the top. To do this the border alpha has to be set
    to "0" otherwise you see odd artifacts, but then the highlight can
    only apply to the background color.
    To get the effect I wanted, I embeded the panel with the
    highlight and buttons inside another panel (with the
    backgroundColor i wanted and solid border) embeding the panels is
    what caused the mouse events to go missing. Changing the outer
    Panel to a Canvas fixed the problem.
    However I still think there is a problem with Panels.
    embedding a Panel inside another Panel should not make the mouse
    events disappear. I'm just not sure where the real problem is.
    If anyone is curious, i can prepare a simple test app that
    shows the bug.
    -pete
    -pete

  • Problem with focus border and ListCellRenderer in custom listbox

    I have a bug in some code that I adapted from another posting on this board -- basically what I've done is I have a class that implements a custom "key/value" mapping listbox in which each list item/cell is actually a JPanel consisting of 3 JLabels: the first label is the "key", the second is a fixed "==>" mapping string, and the 3rd is the value to which "key" is mapped.
    The code works fine as long as the list cell doesn't have the focus. When it does, it draws a border rectangle to indicate focus, but if the listbox needs to scroll horizontally to display all the text, part of the text gets cut off (i.e. "sometex..." where "sometext" should be displayed).
    The ListCellRenderer creates a Gridlayout to lay out the 3 labels in the cell's JPanel.
    What can I do to remedy this situation? I'm not sure what I'd need to do in terms of setting the size of the panel so that all the text gets displayed OK within the listbox. Or if there's something else I can do to fix this. The code and a main() to run the code are provided below. To reproduce the problem, click the Add Left and Add Right buttons to add a "mapping" -- when it doesn't have focus, everything displays fine, but when you give it focus, note the text on the right label gets cut off.
    //======================================================================
    // Begin Source Listing
    //======================================================================
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.Vector;
    import java.util.Enumeration;
    public class TwoColumnListbox extends JPanel
    private JList m_list;
    private JScrollPane m_Pane;
    public TwoColumnListbox(Collection c)
         DataMapListModel model = new DataMapListModel();
         if (c != null)
         Iterator it = c.iterator();
         while (it.hasNext())
         model.addElement(it.next());
         m_list = new JList(model);
         ListBoxRenderer renderer= new ListBoxRenderer();
              m_list.setCellRenderer(renderer);
              setLayout(new BorderLayout());
              m_list.setVisibleRowCount(4);
              m_Pane = new JScrollPane(m_list);
              add(m_Pane, BorderLayout.NORTH);
    public JList getList()
    return m_list;
    public JScrollPane getScrollPane()
    return m_Pane;
    public static void main(String s[])
              JFrame frame = new JFrame("TwoColumnListbox");
              frame.addWindowListener(new WindowAdapter() {
              public void windowClosing(WindowEvent e) {System.exit(0);}
    final DataMappings dm = new DataMappings();
    final TwoColumnListbox lb = new TwoColumnListbox(dm.getMappings());
              final DataMap map = new DataMap();
              JButton leftAddBtn = new JButton("Add Left");
              leftAddBtn.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e)
              map.setSource("JButton1");
              DefaultListModel model = new DefaultListModel();
              model.addElement(map);
              lb.getList().setModel(model);
              JButton leftRemoveBtn = new JButton("Remove Left");
              leftRemoveBtn.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e)
              map.setSource("");
              DefaultListModel model = new DefaultListModel();
              model.addElement(map);
              lb.getList().setModel(model);
              JButton rightAddBtn = new JButton("Add Right");
    rightAddBtn.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e)
              map.setDestination("/getQuote/symbol[]");
              DefaultListModel model = new DefaultListModel();
              model.addElement(map);
              lb.getList().setModel(model);
              JButton rightRemoveBtn = new JButton("Remove Right");
    rightRemoveBtn.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e)
              map.setDestination("");
              DefaultListModel model = new DefaultListModel();
              model.addElement(map);
              lb.getList().setModel(model);
              JPanel leftPanel = new JPanel(new BorderLayout());
              leftPanel.add(leftAddBtn, BorderLayout.NORTH);
              leftPanel.add(leftRemoveBtn, BorderLayout.SOUTH);
    JPanel rightPanel = new JPanel(new BorderLayout());
              rightPanel.add(rightAddBtn, BorderLayout.NORTH);
              rightPanel.add(rightRemoveBtn, BorderLayout.SOUTH);
    frame.getContentPane().add(leftPanel, BorderLayout.WEST);
              frame.getContentPane().add(lb,BorderLayout.CENTER);
    frame.getContentPane().add(rightPanel, BorderLayout.EAST);
              frame.pack();
              frame.setVisible(true);
         class ListBoxRenderer extends JPanel implements ListCellRenderer
              private JLabel left;
              private JLabel arrow;
              private JLabel right;
              private Color clrForeground = UIManager.getColor("List.foreground");
    private Color clrBackground = UIManager.getColor("List.background");
    private Color clrSelectionForeground = UIManager.getColor("List.selectionForeground");
    private Color clrSelectionBackground = UIManager.getColor("List.selection.Background");
              public ListBoxRenderer()
                   setLayout(new GridLayout(1, 2, 10, 0));
                   //setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
                   left = new JLabel("");
                   left.setForeground(clrForeground);               
                   arrow = new JLabel("");
                   arrow.setHorizontalAlignment(SwingConstants.CENTER);
                   arrow.setForeground(clrForeground);
                   right = new JLabel("");
                   right.setHorizontalAlignment(SwingConstants.RIGHT);
                   right.setForeground(clrForeground);
                   add(left);
                   add(arrow);
                   add(right);
              public Component getListCellRendererComponent(JList list, Object value,
                        int index, boolean isSelected, boolean cellHasFocus)
                   if (isSelected)
                        setBackground(list.getSelectionBackground());
                        setForeground(list.getSelectionForeground());
                        left.setForeground(clrSelectionForeground);
                        arrow.setForeground(clrSelectionForeground);
                        right.setForeground(clrSelectionForeground);
                   else
                        setBackground(list.getBackground());
                        setForeground(list.getForeground());
                   left.setForeground(clrForeground);
                        arrow.setForeground(clrForeground);
                        right.setForeground(clrForeground);               
                   // draw focus rectangle if control has focus. Problem with focus
    // and cut off text!!
                   if (cellHasFocus)
                   // FIXME: for Windows LAF I'm not getting the correct thing here for some reason.
                   // Looks OK on Metal though.
                   setBorder(BorderFactory.createLineBorder(UIManager.getColor("focusCellHighlightBorder")));
                   else
                   setBorder(BorderFactory.createEmptyBorder());               
    DataMap map = (DataMap) value;
                   String displaySource = map.getSource();
                   String displayDest = map.getDestination();
                   left.setText(displaySource);
                   arrow.setText("=>to<=");
                   right.setText(displayDest);
                   return this;
    /** Interface for macro editor UI
    * @version 1.0
    class DataMappings
    private Collection mappings;
    public DataMappings()
    setMappings(new Vector(0));
    public DataMappings(Collection maps)
    setMappings(maps);
    /** gets mapping value of a specified source object
    * @param src -- the "key" or source object, what is mapped.
    * @return what the source object is mapped to
    * @version 1.0
    public Object getValue(String src)
    if (src != null)
    Iterator it = mappings.iterator();
    while (it.hasNext());
    DataMap thisMap = (DataMap) it.next();
    if (thisMap.getSource().equals(src))
    return thisMap.getDestination();
    return null;
    /** sets mapping value of a specified source object
    * @param src -- the "key" or source object, what is mapped.
    * @param what the source object is to be mapped to
    * @version 1.0
    public void setValue(String src, String dest)
    if (src != null)
    // see if the value is in there first.
    Iterator it = mappings.iterator();
    while (it.hasNext())
    DataMap thisMap = (DataMap) it.next();
    if (thisMap.getSource().equals(src))
    thisMap.setDestination(dest);
    return;
    // not in the collection, add it
    mappings.add(new DataMap(src, dest));
    /** gets collection of mappings
    * @return a collection of all mappings in this object.
    * @version 1.0
    public Collection getMappings()
    return mappings;
    /** sets collection of mappings
    * @param maps a collection of src to destination mappings.
    * @version 1.0
    public void setMappings(Collection maps)
    mappings = maps;
    /** adds a DataMap
    * @param map a DataMap to add to the mappings
    * @version 1.0
    public void add(DataMap map)
    if (map != null)
    mappings.add(map);
    class DataMap
    public DataMap() {}
    public DataMap(String source, String destination)
    m_source = source;
    m_destination = destination;
    public String getSource()
    return m_source;
    public void setSource(String s)
    m_source = s;
    public String getDestination()
    return m_destination;
    public void setDestination(String s)
    m_destination = s;
    protected String m_source = null;
    protected String m_destination = null;
    /** list model for datamaps that provides ways
    * to determine whether a source is already mapped or
    * a destination is already mapped.
    class DataMapListModel extends DefaultListModel
    public DataMapListModel()
    super();          
    /** determines whether a source is already mapped
    * @param src -- the source property of a datamapping
    * @return true if the source is in the list, false if not
    public boolean containsSource(Object src)
    Enumeration enum = elements();
    while (enum.hasMoreElements())
    DataMap dm = (DataMap) enum.nextElement();
    if (dm.getSource().equals(src))
    return true;
    return false;
    /** determines whether a destination is already mapped
    * @param dest -- the destination property of a datamapping
    * @return true if the destination is in the list, false if not
    public boolean containsDest(Object dest)
    Enumeration enum = elements();
    while (enum.hasMoreElements())
    DataMap dm = (DataMap) enum.nextElement();
    if (dm.getDestination().equals(dest))
    return true;
    return false;
    public DataMappings getDataMaps()
    DataMappings maps = new DataMappings();
    // add all the datamaps in the model
    Enumeration enum = elements();
    while (enum.hasMoreElements())
    DataMap dm = (DataMap) enum.nextElement();
    maps.add(dm);
    return maps;
    //======================================================================
    // End of Source Listing
    //======================================================================

    I did not read the program, but the chopping looks like a layout problem.
    I think it's heavy to use a panel + 3 components in a gridlayout for each cell. look at this sample where i draw the Cell myself,
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.*;
    public class Jlist3 extends JFrame 
         Vector      v  = new Vector();
         JList       jc = new JList(v);
         JScrollPane js = new JScrollPane(jc);
    public Jlist3()
         addWindowListener(new WindowAdapter()
        {     public void windowClosing(WindowEvent ev)
              {     dispose();
                   System.exit(0);}});
         for (int j=0; j < 70; j++)     v.add(""+j*1000+"a  d"+j);
           setBounds(1,1,400,310);
         getContentPane().add(js);
         js.setPreferredSize(new Dimension(230,259));
         jc.setSelectedIndex(1);
         jc.setCellRenderer(new MyCellRenderer());
         getContentPane().setLayout(new FlowLayout());
         setVisible(true);
    public class MyCellRenderer extends JLabel implements ListCellRenderer
         String  txt;
         int     idx;
         boolean sel;
    public Component getListCellRendererComponent(JList list,
                             Object  value,           // value to display
                             int     index,           // cell index
                             boolean isSelected,      // is the cell selected
                             boolean cellHasFocus)    // the list and the cell have the focus
         idx = index;
         txt = value.toString();
         sel = isSelected;
         setText(txt);
         return(this);
    public void paintComponent(Graphics g)
         if (idx%2 == 1) g.setColor(Color.white);
              else        g.setColor(Color.lightGray);
         if (sel)        g.setColor(Color.blue);
         g.fillRect(0,0,getWidth(),getHeight());
         StringTokenizer st = new StringTokenizer(txt.trim()," ");
         g.setColor(Color.black);
         if (st.hasMoreTokens())     g.drawString(st.nextToken(),1,14);
         g.setColor(Color.red);
         g.drawString("===>",70,14);
         g.setColor(Color.black);
         if (st.hasMoreTokens())     g.drawString(st.nextToken(),110,14);
    public static void main (String[] args) 
         new Jlist3();
    Noah
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.*;
    public class Jlist3 extends JFrame
         Vector v = new Vector();
         JList jc = new JList(v);
         JScrollPane js = new JScrollPane(jc);
    public Jlist3()
         addWindowListener(new WindowAdapter()
    {     public void windowClosing(WindowEvent ev)
              {     dispose();
                   System.exit(0);}});
         for (int j=0; j < 70; j++)     v.add(""+j*1000+"a d"+j);
         setBounds(1,1,400,310);
         getContentPane().add(js);
         js.setPreferredSize(new Dimension(230,259));
         jc.setSelectedIndex(1);
         jc.setCellRenderer(new MyCellRenderer());
         getContentPane().setLayout(new FlowLayout());
         setVisible(true);
    public class MyCellRenderer extends JLabel implements ListCellRenderer
         String txt;
         int idx;
         boolean sel;
    public Component getListCellRendererComponent(JList list,
                             Object value, // value to display
                             int index, // cell index
                             boolean isSelected, // is the cell selected
                             boolean cellHasFocus) // the list and the cell have the focus
         idx = index;
         txt = value.toString();
         sel = isSelected;
         setText(txt);
         return(this);
    public void paintComponent(Graphics g)
         if (idx%2 == 1) g.setColor(Color.white);
              else g.setColor(Color.lightGray);
         if (sel) g.setColor(Color.blue);
         g.fillRect(0,0,getWidth(),getHeight());
         StringTokenizer st = new StringTokenizer(txt.trim()," ");
         g.setColor(Color.black);
         if (st.hasMoreTokens())     g.drawString(st.nextToken(),1,14);
         g.setColor(Color.red);
         g.drawString("===>",70,14);
         g.setColor(Color.black);
         if (st.hasMoreTokens())     g.drawString(st.nextToken(),110,14);
    public static void main (String[] args)
         new Jlist3();
    }

Maybe you are looking for

  • Custom JButton displays properly on Win2K, not under Solaris

    We have an applet that creates a panel of custom JButtons, each of which has a set of associated icons, two of which are "active" and "inactive" (there are also disabled, rollover, etc. icons). At runtime, when a button is clicked, its icon property

  • I bought more iCloud storage but it's not showing up in my phone?someone please help

    I couldn't back my phone up because there wasn't enough space so I bought more storage but it's not showing up on my phone and still not letting me back up? Someone please help

  • Unable to exit program from menu

    Hi, I have written a test program to experiment and learn about some codes. Been using Sun Java Studio Enterprise 8.1 Designed the interface and added a menu. It is supposed to exit the program from the File > Exit menu path. For some reason, the pro

  • Velocity - Is it possible to use "velocity in reverse"

    I am new to velocity - what I want to do is if I have a template like Hello $Name and a string like "Hello World" I should be able to do something like this context.get("name") - Now this should return "world" I dont know if this is even possible. Sh

  • Download + Installation IBM DB2 Everyplace

    Hi, i have some problems with the download/installation of IBM DB2 Everyplace. I want to use the database instead of file system, the configuration is ME 2.1 SP03 PL07 and MAM 2.5 SR03 on PDA HP iPAQ with Intel PXA270 and Windows Mobile 2003 SE. With