0
Java UIの新しいデザインで、SpringLayout
を使用してフォームを作成しようとしています。 JLabel
をJFrame
に入れていくつかの制約を加えました。 JLabel
の幅がJPanel
の幅にする必要があります。しかし、それは高さがゼロです。また、幅が狭すぎます。ここでSpringLayoutを使用するとJLabelの高さがゼロになるのはなぜですか?
は、コード断片である:
imageContainer = new JLabel();
imageContainer.setBorder(BorderFactory.createLineBorder(Color.BLACK));
filterButton = new JButton("Filter");
filterButton.addActionListener(filter);
layout.putConstraint(SpringLayout.WEST, imageContainer, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, imageContainer, 5, SpringLayout.NORTH, this);
layout.putConstraint(SpringLayout.EAST, imageContainer, 5, SpringLayout.EAST, this);
layout.putConstraint(SpringLayout.WEST, filterButton, 5, SpringLayout.WEST, this);
layout.putConstraint(SpringLayout.NORTH, filterButton, 5, SpringLayout.SOUTH, imageContainer);
layout.putConstraint(SpringLayout.SOUTH, filterButton, 5, SpringLayout.SOUTH, this);
そして、これは私が間違って行くのですresult
のですか?親コンテナにサイズJLabel
を伸ばす方法?
* "ここにコード断片があります:" *より早くヘルプをするには、[MCVE]または[ショート、自己完結型、正しい例](http://www.sscce.org/)を投稿してください。 BTW - ラベルにアイコンやテキストが含まれるまで、その好ましいサイズは0x0になります。 –
後でJLabelに画像を入れたいです。しかし、私がイメージを傷つける(スケールする)ためには、JLabelのサイズを知る必要があります。 –
MCVEはどこですか? BTW - ラベルは内容(例えば画像)に基づいて好ましいサイズを返します。おそらく、getPreferredSize()メソッドをオーバーライドして論理最小値を生成する 'JPanel'のイメージをカスタムペイントすることでこれに近づける方が良いでしょう。次に、1)レイアウトによってパネルにスペースが割り当てられます。 2)カスタムペイントは、パネルが終わるサイズに基づいてイメージを描くことができる。 –