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 件のコメント:
コメントを投稿