JPanel
に1つのコンポーネントを表示する必要があり、そのコンポーネントを常に右下隅に表示したいと考えています。 GridBagLayoutを使用してコンポーネントを右下に配置する方法は?
val infoArea = new TextArea {
text = "Hello!"
border = Swing.EmptyBorder(30)
background = Color.RED
editable = false
}
val p = new JPanel
p.setLayout(new GridBagLayout)
val c = new GridBagConstraints
c.gridx = 0
c.gridy = 0
c.anchor = GridBagConstraints.LAST_LINE_END
p.add(infoArea.peer,c)
val f = new JFrame
f.setContentPane(p)
f.setVisible(true)
しかし、テキストエリアには、何らかの理由で中心にされています:私はGridBagLayoutがでそれを実行しようとしました
私はここで間違って何をしているのですか?例えば
を使用したい場合は、それはあなたのコードで表示されるのGridBagLayoutチュートリアル(追加を読んでいませんJPanelを埋めるためにいくつかのダミーコンポーネントを追加せず、GridBagConstraintsをすべて設定するのではなく、gridxとgridyを0にします。)、これは何も期待できません最初に勉強することなく働くことができます。それにもかかわらず、BorderLayoutsなどのより単純なレイアウトを使用して入れ子になったJPanelを使用します。 –
@HovercraftFullOfEels - 私は1つのセルしか持たず、右下に配置されるコンポーネント(アンカー制約を設定すること)が必要です。ここには他にどんな制約がありますか? – Rogach
weightx、weighty for oneですが、1つのコンポーネントだけを追加している場合でも、GridBagLayoutで行うことはできません。ここでも、JPanelをそれぞれ独自のレイアウトでネストします。ここでも、BorderLayoutはうまくいくでしょう。 –