フローレイアウトで強制改行するサンプルです。
- やってる事は、JSeparatorを縦幅0、横幅ウィンドウと同じサイズで追加するだけですが!
サンプルダウンロード
サンプルソース
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.TextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
/*
* フローレイアウトで強制改行するサンプルです。
* ・やってることは、JSeparatorを縦幅0、横幅ウィンドウと同じサイズで追加するだけです。
*/
public class FlowNewLine extends JFrame {
public static void main(String[] args) {
new FlowNewLine();
}
public FlowNewLine() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
int width = 300;
setBounds(200, 100, width, 220);
setTitle("フローレイアウトで強制改行");
// フローレイアウト設定
FlowLayout l = new FlowLayout(FlowLayout.LEFT);
l.setVgap(3);
l.setHgap(5);
setLayout(l);
setResizable(false); // サイズ変更禁止
add(getHr(width, 0));
add(getLabel("住所"));
add(new TextField(20));
add(getHr(width, 0));
add(getLabel("氏名"));
add(new TextField(20));
add(getHr(width, 0));
add(getLabel("年齢"));
add(new TextField(3));
add(getHr(width, 0));
add(getLabel("電話番号"));
add(new TextField(10));
add(getHr(width, 0));
add(getLabel("趣味"));
add(new TextField(20));
add(getHr(width, 0));
add(getHr(width - 18, 1));
// ボタンをセンタリング表示のためにパネルを追加
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.setPreferredSize(new Dimension(width - 18, 50));
p.add(new JButton("OK"));
add(p);
setVisible(true);
}
public JLabel getLabel(String text) {
JLabel label = new JLabel(text);
label.setPreferredSize(new Dimension(65, 20));
label.setHorizontalAlignment(JLabel.RIGHT);
return label;
}
public JSeparator getHr(int width, int hight) {
JSeparator sp = new JSeparator(JSeparator.HORIZONTAL);
sp.setPreferredSize(new Dimension(width, hight));
return sp;
}
}
最終更新:2012年10月23日 02:30