title: Java JLabel setHorizontalAlignment with different results
body: <p>I want to center an JLabel inside an BorderLayout. For now I use <code>label.setHorizontalAlignment(SwingConstants.CENTER);</code> and <code>label.setVerticalAlignment(SwingConstants.BOTTOM);</code>.</p>
  
  <p>here the full Code:</p>
  
  <pre><code>public class JSector extends JRenderPanel implements WarpGateConstants {
  
  private Sector sector;
  
  private JLabel jLabelSectorName;
  private JLabel[] jLabelWarpGate;
  
  public JSector(Sector s) {
      super(new BorderLayout());
      this.setSector(s);
      setBorder(new EmptyBorder(5, 5, 5, 5));
  
  }
  
  @Override
  public void paintView(Graphics2D g) {
      g.setColor(getBackground());
      g.fillRoundRect(0, 0, getWidth() - 1, getHeight() - 1, getWidth() / 3, getHeight() / 3);
      g.setColor(getForeground());
      g.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, getWidth() / 3, getHeight() / 3);
  }
  
  private void setSector(Sector s) {
      this.sector = s;
      drawSectorInfo(s);
  }
  
  public Sector getSector() {
      return sector;
  }
  
  private void drawSectorInfo(Sector s) {
      removeAll();
      if (jLabelSectorName == null || jLabelWarpGate == null) {
          this.jLabelWarpGate = new JLabel[WARPGATE_MAX_VALUE + 1];
          this.jLabelWarpGate[WARPGATE_NORTH] = new JLabel("N");
          this.jLabelWarpGate[WARPGATE_EAST] = new JLabel("E");
          this.jLabelWarpGate[WARPGATE_SOUTH] = new JLabel("S");
          this.jLabelWarpGate[WARPGATE_WEST] = new JLabel("W");
  
          for (byte i = 0; i &lt; jLabelWarpGate.length; i++) {
              setupLabel(jLabelWarpGate[i], i);
          }
  
          this.jLabelSectorName = new JLabel("SectorName");
  
          add(this.jLabelWarpGate[WARPGATE_NORTH], BorderLayout.NORTH);
          add(jLabelWarpGate[WARPGATE_EAST], BorderLayout.EAST);
          add(jLabelWarpGate[WARPGATE_SOUTH], BorderLayout.SOUTH);
          add(jLabelWarpGate[WARPGATE_WEST], BorderLayout.WEST);
          add(jLabelSectorName, BorderLayout.CENTER);
  
      }
      for (byte i = 0; i &lt; jLabelWarpGate.length; i++) {
          WarpGate gate = s.getWarpGate(i);
          if (gate != null &amp;&amp; gate.exists()) {
              jLabelWarpGate[i].setToolTipText("TargetSector: " + gate.getTargetGridPos());
              jLabelWarpGate[i].setVisible(true);
          } else {
              jLabelWarpGate[i].setVisible(false);
          }
      }
      jLabelSectorName.setText(s.getName());
  
  }
  
  private static JLabel setupLabel(JLabel label, byte warpGateID) {
      Font font = label.getFont();
      font = new Font(font.getName(), Font.BOLD, font.getSize() + 2);
      label.setFont(font);
      label.setForeground(new Color(255, 150, 0));
      label.setBackground(new Color(0, 100, 255, 150));
      label.setOpaque(true);
  
      switch (warpGateID) {
          case WARPGATE_NORTH:
              label.setHorizontalAlignment(SwingConstants.CENTER);
              label.setVerticalAlignment(SwingConstants.TOP);
              break;
          case WARPGATE_EAST:
              label.setHorizontalAlignment(SwingConstants.RIGHT);
              label.setVerticalAlignment(SwingConstants.CENTER);
              break;
          case WARPGATE_SOUTH:
              label.setHorizontalAlignment(SwingConstants.CENTER);
              label.setVerticalAlignment(SwingConstants.BOTTOM);
              break;
          case WARPGATE_WEST:
              label.setHorizontalAlignment(SwingConstants.LEFT);
              label.setVerticalAlignment(SwingConstants.CENTER);
              break;
  
      }
      return label;
  }
  
  }
  </code></pre>
  
  <p>It works good but the West and East Gates have different Vertical positions:</p>
  
  <p><img src="https://i.stack.imgur.com/RCMfs.png" alt="West and East Gates have different Vertical positions"></p>
  
  <p>I hope you can help me to solve this problem</p>
  
  <p><strong>EDIT:</strong> I think I found the Problem. I set some Lables visible(false) and this causes the problem. But the problem is still there, how do I get these Jlabels on same line.</p>