Swing/SpinnerButtonLayout のバックアップの現在との差分(No.1)
TITLE:JSpinnerのボタンを左右に配置する
Posted by aterai at 2011-01-24
JSpinnerのボタンを左右に配置する
JSpinnerのレイアウトを変更して、矢印ボタンを左右に配置します。- category: swing folder: SpinnerButtonLayout title: JSpinnerのボタンを左右に配置する tags: [JSpinner, ArrowButton, LayoutManager] author: aterai pubdate: 2011-01-24T14:15:43+09:00 description: JSpinnerのレイアウトを変更して、矢印ボタンを左右に配置します。 image:
概要
JSpinner
のレイアウトを変更して、矢印ボタンを左右に配置します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
サンプルコード
サンプルコード
#spandel
private static class SpinnerLayout extends BorderLayout {
#spanend
#spanadd
class SpinnerLayout extends BorderLayout {
#spanend
@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";
Object cons = constraints;
if ("Editor".equals(constraints)) {
cons = "Center";
} else if ("Next".equals(constraints)) {
cons = "East";
} else if ("Previous".equals(constraints)) {
cons = "West";
}
super.addLayoutComponent(comp, str);
super.addLayoutComponent(comp, cons);
}
}
#spandel
private static class MySpinnerUI extends BasicSpinnerUI {
#spanend
@Override protected LayoutManager createLayout() {
return new SpinnerLayout();
}
#spandel
}
#spanend
View in GitHub: Java, Kotlin解説
- Default
解説
-
Default
- デフォルト
- RIGHT_TO_LEFT
- JSpinner#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)で、ボタンを左側に配置
- L(Prev), R(Next)
- BorderLayout#addLayoutComponent(...)をオーバーライドして、EditorをCenter、NextをEast、PrevをWestに配置するレイアウトマネージャを作成して使用
- 右端に増加ボタン、減少ボタンを配置
-
RIGHT_TO_LEFT
-
JSpinner#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
で各ボタンを左側に配置
-
-
L(Prev), R(Next): 1
-
BorderLayout#addLayoutComponent(...)
をオーバーライドしてEditor
をCenter
、Next
をEast
、Prev
をWest
に配置するレイアウトマネージャーを作成#spanend #spanadd JSpinner spinner = new JSpinner(model) { #spanend @Override public void updateUI() { super.updateUI(); setUI(new BasicSpinnerUI() { @Override protected LayoutManager createLayout() { return new SpinnerLayout(); } }); } #spanadd }; #spanend #spanadd
-
コメント
-
L(Prev), R(Next): 2
-
L(Prev), R(Next): 1
と同じレイアウトマネージャーをJSpinner#setLayout(...)
メソッドをオーバーライドして設定#spanend #spanadd JSpinner spinner = new JSpinner(model) { #spanend @Override public void setLayout(LayoutManager mgr) { super.setLayout(new SpinnerLayout()); } #spanadd }; #spanend #spanadd
-