その一部は、追加のスペースをどのように割り当てるかによって異なります。この GUI は、ボタンを中央に配置したまま、テキスト フィールドとテキスト エリアに追加の幅を提供します。テキスト領域に余分な高さが与えられます。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.*;
public class BasicLayout {
BasicLayout() {
JPanel gui = new JPanel(new BorderLayout(2,2));
gui.add(new JTextField(), BorderLayout.PAGE_START);
gui.add(new JTextArea(3,15));
JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
controls.add(new JButton("Button1"));
controls.add(new JButton("Button2"));
gui.add(controls, BorderLayout.PAGE_END);
JOptionPane.showMessageDialog(null, gui);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new BasicLayout();
}
});
}
}
アップデート
JTextArea
最初は真ん中の部分のことかと思って、よく見てみました。AJTextPane
は、コンストラクターでサイズのヒントを受け入れないため、サイズ設定が少し難しくなります。そのために、コンテナーの推奨サイズを微調整できます (この場合、JScrollPane
.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.*;
public class BasicLayout {
BasicLayout() {
JPanel gui = new JPanel(new BorderLayout(2,2));
gui.add(new JTextField(), BorderLayout.PAGE_START);
JTextPane text = new JTextPane();
JScrollPane scroll = new JScrollPane(text);
Dimension d = text.getPreferredSize();
scroll.setPreferredSize(new Dimension(d.width, d.height*3));
gui.add(scroll);
JPanel controls = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
controls.add(new JButton("Button1"));
controls.add(new JButton("Button2"));
gui.add(controls, BorderLayout.PAGE_END);
JOptionPane.showMessageDialog(null, gui);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new BasicLayout();
}
});
}
}