JSpinnerといえば
どうも、プログラマのyu1rowです。
以前「JSpinnerのちょっと困った話」っていう小ネタのエントリを投稿しましたが、これが結構アクセス数多いんですね。
今回はその続きというか、派生の話題です。
要は「horizontalAlignment」が欲しいってだけ
JSpinnerにはhorizontalAlignmentがありませんでした。
でも欲しかったんで足しました。
今回はそれだけです。
需要、あるかなぁ?
JSpinnerにメソッドを付け足したクラスを作ります。
足された公開メソッドは以下の2つ。
- void setHorizontalAlignment(int alignment)
- int getHorizontalAlignment()
package com.yu1row.blog;
import javax.swing.JFormattedTextField;
import javax.swing.JSpinner;
/**
* Spinner implemented property horizontalAlignement.
* @author yu1row
*/
public class JAlignSpinner extends JSpinner {
private static final long serialVersionUID = 1L;
private JFormattedTextField getTextField() {
return (JFormattedTextField) getEditor().getComponents()[0];
}
public void setHorizontalAlignment(int alignment) {
getTextField().setHorizontalAlignment(alignment);
}
public int getHorizontalAlignment() {
return getTextField().getHorizontalAlignment();
}
}
使い方
setHorizontalAlignmentの引数には以下を指定できます。
| javax.swing.SwingConstants.LEFT | 左詰 |
|---|---|
| javax.swing.SwingConstants.CENTER | 中央 |
| javax.swing.SwingConstants.RIGHT | 右詰 |
| javax.swing.SwingConstants.LEADING | (日本語環境なら)左詰:デフォルト |
| javax.swing.SwingConstants.TRAILING | (日本語環境なら)右詰 |
実際に使ってみたコード例を以下に示します。
import java.awt.Container;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
import com.yu1row.blog.JAlignSpinner;
public class ShowAlignSpinner {
public static void main(String args[]) {
JFrame frame = new JFrame();
Container c = frame.getContentPane();
c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));
JAlignSpinner spinner;
// LEFT
spinner = new JAlignSpinner();
spinner.setHorizontalAlignment(SwingConstants.LEFT);
c.add(spinner);
// CENTER
spinner = new JAlignSpinner();
spinner.setHorizontalAlignment(SwingConstants.CENTER);
c.add(spinner);
// RIGHT
spinner = new JAlignSpinner();
spinner.setHorizontalAlignment(SwingConstants.RIGHT);
c.add(spinner);
// LEADING
spinner = new JAlignSpinner();
spinner.setHorizontalAlignment(SwingConstants.LEADING);
c.add(spinner);
// TRAILING
spinner = new JAlignSpinner();
spinner.setHorizontalAlignment(SwingConstants.TRAILING);
c.add(spinner);
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
以上です!
0 件のコメント:
コメントを投稿