-2

重複の可能性:
JPanel で JLabel をセンタリングする

JPanelの中​​心にJLabelを入れたい。以下のコードを使用しましたので、教えてください。このコードの何が問題になっていますか? コード:

public class ColoredRect extends JPanel{

      public double x, y, width, height;  
      public JLabel name;

      public ColoredRect(double x,double y,String label)
      {

          this.x = x;
          this.y = y;
          this.width = 100;
          this.height =40;

          setLocation((int)x,(int)y);
          setSize((int)width,(int)height);
          setBackground(Color.red);

          name = new JLabel(label,JLabel.CENTER);
          name.setForeground(Color.BLACK);
          name.setVisible(true);
          name.setSize(20,20);
          name.repaint();
          add(name);
        }
}

前もって感謝します

4

2 に答える 2

2

JLabel がコンテナー内の唯一のコンポーネント (ここでは JPanel) である場合、BorderLayout が使用されている場合は、center 属性を指定して BorderLayout を使用し、BorderLayout を使用すると、デフォルトで中央になります。2005 年に netbeans チームによって開発された GroupLayout を使用することをお勧めします。

例えば:

class pan extends JPanel{

        JLabel label = new JLabel("Name");

        public void go(){

            this.setLayout(new BorderLayout());
            this.add(label,BorderLayout.CENTER);
        }
    }
于 2012-06-29T09:05:07.273 に答える
1

水平方向の配置も使用できます。

name.setHorizontalAlignment(SwingConstants.CENTER);
于 2012-06-29T10:01:29.357 に答える