/[classpath]/classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java
ViewVC logotype

Diff of /classpath/javax/swing/plaf/basic/BasicComboBoxRenderer.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by mark, Sat Jul 2 20:32:50 2005 UTC revision 1.5 by langel, Thu Sep 15 19:58:43 2005 UTC
# Line 40  package javax.swing.plaf.basic; Line 40  package javax.swing.plaf.basic;
40    
41  import java.awt.Component;  import java.awt.Component;
42  import java.awt.Dimension;  import java.awt.Dimension;
43    import java.awt.FontMetrics;
44  import java.io.Serializable;  import java.io.Serializable;
45    
46  import javax.swing.JLabel;  import javax.swing.JLabel;
47  import javax.swing.JList;  import javax.swing.JList;
48  import javax.swing.ListCellRenderer;  import javax.swing.ListCellRenderer;
49  import javax.swing.SwingConstants;  import javax.swing.SwingConstants;
50    import javax.swing.SwingUtilities;
51  import javax.swing.UIDefaults;  import javax.swing.UIDefaults;
52  import javax.swing.UIManager;  import javax.swing.UIManager;
53  import javax.swing.border.Border;  import javax.swing.border.Border;
# Line 100  public class BasicComboBoxRenderer exten Line 102  public class BasicComboBoxRenderer exten
102                                                  boolean cellHasFocus)                                                  boolean cellHasFocus)
103    {    {
104      String s = value.toString();      String s = value.toString();
105      setText(s);      
106        // String maybe larger than comboBox.
107        FontMetrics fm = getToolkit().getFontMetrics(list.getFont());
108        int strWidth = SwingUtilities.computeStringWidth(fm, s);
109        int cbWidth = getSize().width;
110        if (cbWidth != 0 && strWidth > cbWidth)
111          {
112            char[] str = s.toCharArray();
113            int currWidth = 0;
114            int i = 0;
115            String postStr = "... ";
116            cbWidth -= SwingUtilities.computeStringWidth(fm, postStr);
117            while (i < str.length && currWidth < cbWidth)
118              {
119                ++i;
120                currWidth = SwingUtilities.computeStringWidth(fm, new String(str, 0, i));
121              }
122            setText(new String(str, 0, i)  + postStr);
123          }
124        else  
125          setText(s);
126        
127      setOpaque(true);      setOpaque(true);
128    
129      UIDefaults defaults = UIManager.getLookAndFeelDefaults();      UIDefaults defaults = UIManager.getLookAndFeelDefaults();

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26