Swing/SpinnerButtonLayout のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SpinnerButtonLayout へ行く。
- title: JSpinnerのボタンを左右に配置する tags: [JSpinner, ArrowButton, LayoutManager] author: aterai pubdate: 2011-01-24T14:15:43+09:00 description: JSpinnerのレイアウトを変更して、矢印ボタンを左右に配置します。
概要
JSpinner
のレイアウトを変更して、矢印ボタンを左右に配置します。
Screenshot
Advertisement
サンプルコード
class SpinnerLayout extends BorderLayout {
@Override public void addLayoutComponent(Component comp, Object constraints) {
String str = "";
if("Editor".equals(constraints)) {
str = "Center";
} else if("Next".equals(constraints)) {
str = "East";
} else if("Previous".equals(constraints)) {
str = "West";
}
super.addLayoutComponent(comp, str);
}
}
View in GitHub: Java, Kotlin解説
Default
- デフォルト
RIGHT_TO_LEFT
JSpinner#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
で、ボタンを左側に配置
L(Prev), R(Next): 1
BorderLayout#addLayoutComponent(...)
をオーバーライドして、Editor
をCenter
、Next
をEast
、Prev
をWest
に配置するレイアウトマネージャーを作成して使用
JSpinner spinner = new JSpinner(model) {
@Override public void updateUI() {
super.updateUI();
setUI(new BasicSpinnerUI() {
@Override protected LayoutManager createLayout() {
return new SpinnerLayout();
}
});
}
};
L(Prev), R(Next): 2
L(Prev), R(Next): 1
と同じレイアウトマネージャーをJSpinner#setLayout(...)
メソッドをオーバーライドして設定
JSpinner spinner = new JSpinner(model) {
@Override public void setLayout(LayoutManager mgr) {
super.setLayout(new SpinnerLayout());
}
};