2011-06-22 19 views
7

Jak utworzyć numeryczne pole tekstowe w java swing, które ma dwa przyciski (w górę iw dół), które zwiększają i zmniejszają wartość w polu tekstowym. Również to pole tekstowe musi być edytowalne za pomocą TYLKO WARTOŚCI NUMERYCZNYCH. Coś takiegoTworzenie numerycznego pola tekstowego w java Swing z przyciskami zwiększania i zmniejszania

Numeric Text Box

Próbowałem poprzez umieszczenie dwa przyciski obok pola tekstowego i ręcznie wykonując operację na kliknięcia przycisku.

My try Text Box

Czy istnieje inna metoda, w której można zrobić to w lepszy sposób i osiągnąć podobny wynik jak w pierwszym obrazie.

Dzięki :)

Odpowiedz

14

Zastosowanie JSpinner

How to use Spinners in java


Oparte na Twój komentarz:

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

Can to będzie używane do zwiększania i zmniejszania w krokach co 0,1, kiedy po wdrożeniu w drugą stronę, float daje takie rzeczy, '9.8000000000007' przy zmniejszeniu z' 9,9' i podobnych problemów – Balanivash

+0

Użyj [SpinnerNumberModel] (http: // download .oracle.com/javase/6/docs/api/javax/swing/SpinnerNu mberModel.html). Podaj 0,1 w kroku, aby zmienić wartość o 0,1. –

2

JSpinner potrzebę pozwala tylko wejście numeryczny, wymagany do tego trochę siekać w swoim modelu , ale twoja druga. obraz wygląda jak dwa JButtons (z JButton # setFocucPainted (false)), a jeden JFormattedTextField z numerem formatu, z min/maxDecimalPaces, z roundingMode

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

następnie Action z JButton będzie

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

w rzeczywistości muszę utworzyć coś podobnego do pierwszego obrazu, ponieważ nie wiem jak, zrobiłem to ręcznie za pomocą dwóch przycisków i pola tekstowego. Ale myślę, że JSpinner załatwił sprawę .. :) Dzięki :) – Balanivash

+0

@Balanivash serdecznie zapraszamy :-) zawsze istnieje alternatywa, o moim wpisie, nikt nie wie ..., ale dla JSinnera musisz wcielać w to hack, przeczytaj carrefully http: //forums.oracle.com/forums/thread.jspa?messageID=9337792� – mKorbel

Powiązane problemy