2011-06-22 4 views
7

テキストボックスの値を増減する2つのボタンがあるJavaスイングで数値テキストボックスを作成するにはどうすればよいですか?また、このテキストボックスはの数値のみで編集可能である必要があります。このJavaで数字のテキストボックスを作成するインクリメントとデクリメントのボタンを使用したスウィング

Numeric Text Box

のようなものは、私は、テキストボックスの近くに二つのボタンを配置し、手動でボタンのクリックの操作を行うことで試してみました。

My try Text Box

私はより良い方法でこれを行うと、最初の画像と同様の結果を得ることが可能な任意の他の方法があります。

感謝:)

答えて

14

使用あなたのコメントに基づいてJSpinner

How to use Spinners in java


:数値のみの入力を可能にするための

SpinnerModel model = new SpinnerNumberModel(9.9, 1, 15, 0.1);  
JSpinner spinner = new JSpinner(model); 
+0

になります缶他の方法を実装したときに浮動小数点値を9.900000000007とし、9.9と同様の問題を修正しました。 – Balanivash

+0

[Spin​​nerNumberModel](http:// download .oracle.com/javase/6/docs/api/javax/swing/SpinnerNu mberModel.html)を参照してください。ステップで0.1を入力して値を0.1だけ変更します。 –

2

JSpinner必要が、そのためにいくつかのハックを必要とそのモデルでしかし、あなたの第二です。絵がroundingMode

myDoubleFormat.setMinimumFractionDigits(2); 
myDoubleForma.setMaximumFractionDigits(2); 
myDoubleForma.setRoundingMode(RoundingMode.HALF_UP); 

で、(JButtonの#setFocucPainted(偽)との)2 JButtons、および最小/ maxDecimalPacesと番号の形式で1 JFormattedTextField、などのように見え、その後JButtonからAction

myFtdTextField.setValue(((Number) myFtdTextField.getValue()).doubleValue() +/- 0.1) 
+0

実際、私は最初の画像に似たものを作成する必要があります。なぜなら、私は手動で2つのボタンとテキストボックスを使ってそれをやったのです。しかし、JSpinnerがトリックをしたと思う:) :) Thanks :) – Balanivash

+0

@Balanivashあなたは大歓迎です:-)私の投稿については誰も知らない...しかし、JSinnerの場合、このハックを暗示しなければなりません。 //forums.oracle.com/forums/thread.jspa?messageID=9337792� – mKorbel

関連する問題