JSpinnerのボタンを左右に配置する
Total: 5515
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
JSpinner
のレイアウトを変更して、矢印ボタンを左右に配置します。
Screenshot
Advertisement
サンプルコード
class SpinnerLayout extends BorderLayout {
@Override public void addLayoutComponent(Component comp, Object constraints) {
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, cons);
}
}
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()); } };