title: JComboBox change drop-down popup
body: <p>basically is popup for a <a href="http://download.oracle.com/javase/tutorial/uiswing/components/combobox.html" rel="nofollow">JComboBox</a> displayed below its derived JTextField, how can change direction from bellowed orientations for JComboBox's popup and display JComboBox's popup on the top/over that </p>
  
  <p>EDIT: code example for basic JComboBox</p>
  
  <pre><code>import java.awt.Dimension;
  import javax.swing.*;
  import javax.swing.plaf.basic.BasicComboBoxRenderer;
  
  public class HighRowCombo {
  
      public static void main(String[] args) {
          SwingUtilities.invokeLater(new Runnable() {
  
              @Override
              public void run() {
                  new HighRowCombo().makeUI();
              }
          });
      }
  
      public void makeUI() {
          Object[] data = {"One", "Two with text", "Three with long text, with long text,with long text "};
          JComboBox comboBox = new JComboBox(data);
          JFrame frame = new JFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setLocationRelativeTo(null);
          frame.add(comboBox);
          frame.pack();
          BasicComboBoxRenderer renderer = (BasicComboBoxRenderer) comboBox.getRenderer();
          Dimension size = renderer.getPreferredSize();
          size.height += 50;
          renderer.setPreferredSize(size);
          frame.setVisible(true);
      }
  }
  </code></pre>
  
  <p>EDIT 2nd. Code for MacOX</p>
  
  <pre><code>import java.awt.*;
  import javax.swing.*;
  
  public class TestHighRow {
  
      public static void main(String[] args) {
          SwingUtilities.invokeLater(new Runnable() {
  
              @Override
              public void run() {
                  try {
                      UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
                  new TestHighRow().makeUI();
              }
          });
      }
  
      public void makeUI() {
          Object[] data = {"One", "Two", "Three"};
          JComboBox comboBox = new JComboBox(data);
          comboBox.setPreferredSize(comboBox.getPreferredSize());
          comboBox.setRenderer(new HighRowRenderer(comboBox.getRenderer()));
          JFrame frame = new JFrame();
          frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
          frame.getContentPane().add(comboBox);
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setVisible(true);
      }
  
      public static class HighRowRenderer implements ListCellRenderer {
  
          private final ListCellRenderer delegate;
          private int height = -1;
  
          public HighRowRenderer(ListCellRenderer delegate) {
              this.delegate = delegate;
          }
  
          @Override
          public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
              Component component = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
              Dimension size = component.getPreferredSize();
              if (height == -1) {
                  height = size.height + 50;
              }
              size.height = height;
              component.setPreferredSize(size);
              if (component instanceof JLabel) {
                  ((JLabel) component).setHorizontalTextPosition(JLabel.CENTER);
              }
              return component;
          }
      }
  }
  </code></pre>