Java Swing JSpinner

2018-01-09 19:23 更新

Java Swing教程 - Java Swing JSpinner


JSpinner組件組合來自JFormattedTextField和可編輯的JComboBox的函數(shù)。

JSpinner可以有一個選擇列表,同時,我們也可以應用一個格式到顯示的值。

它從選擇列表中一次只顯示一個值,它允許我們輸入一個新值。

JSpinner中的選擇列表必須是有序列表。

JSpinner根據(jù)其型號提供紡紗能力。

我們必須在JSpinner的構造函數(shù)中提供一個模型,除非我們只需要一個帶有整數(shù)列表的JSpinner。

JSpinner支持三種有序的選擇列表。

  • a list of numbers
  • a list of dates
  • a list of any other objects

它提供了三個類來創(chuàng)建三種不同類型的列表的模型:

  • SpinnerNumberModel
  • SpinnerDateModel
  • SpinnerListModel

Spinner模型是SpinnerModel接口的一個實例。它定義了getValue(),setValue(),getPreviousValue()和getNextValue()方法來處理JSpinner中的值。

SpinnerNumberModel類可以旋轉(zhuǎn)一個有序的數(shù)字列表。我們需要在列表中指定最小值,最大值和當前值。我們還可以指定當我們使用JSpinner的向上/向下按鈕時用于遍歷數(shù)字列表的步長值。

以下代碼創(chuàng)建一個JSpinner,其中包含1到10之間的數(shù)字列表。它讓我們以1為步長旋轉(zhuǎn)列表。字段的當前值設置為5。

int minValue  = 1;
int maxValue = 10;
int currentValue = 5;
int steps = 1;

SpinnerNumberModel  nModel = new SpinnerNumberModel(currentValue, minValue,   maxValue,  steps); 
JSpinner  numberSpinner = new JSpinner(nModel);

SpinnerDateModel類提供了一個模型來旋轉(zhuǎn)日期的有序列表。

我們需要指定開始日期,結(jié)束日期,當前值和步驟。

以下代碼創(chuàng)建一個JSpinner,用于旋轉(zhuǎn)2000年1月1日至2050年12月31日的日期列表,每次一天。

將當前系統(tǒng)日期設置為字段的當前值。

Calendar calendar  = Calendar.getInstance();
calendar.set(2000, 1, 1);
Date  minValue  = calendar.getTime();
calendar.set(2050, 12,   31);

Date  maxValue = calendar.getTime(); 
Date  currentValue = new Date();
int steps = Calendar.DAY_OF_MONTH;  // Must be  a  Calendar field
SpinnerDateModel dModel = new SpinnerDateModel(currentValue, minValue,   maxValue,  steps);
dateSpinner = new JSpinner(dModel);

JSpinner中的日期值將以默認語言環(huán)境格式顯示。

SpinnerListModel類允許我們旋轉(zhuǎn)任何對象的有序列表。

SpinnerListModel類允許我們旋轉(zhuǎn)任何對象的有序列表。...

對象的toString()方法的String值顯示在JSpinner中。

以下代碼段創(chuàng)建一個JSpinner,顯示四個季節(jié)的列表:

String[]  seasons = new String[]  {"Spring", "Summer",  "Fall", "Winter"}; 
SpinnerListModel sModel  = new SpinnerListModel(seasons);
listSpinner = new JSpinner(sModel);

JSpinner使用編輯器對象顯示當前值。 它有以下三個靜態(tài)內(nèi)部類來顯示三種不同類型的有序列表:

  • JSpinner.NumberEditor
  • JSpinner.DateEditor
  • JSpinner.ListEditor

要以特定格式顯示數(shù)字或日期,我們需要為JSpinner設置一個新的編輯器。

數(shù)字和日期編輯器的編輯器類允許我們指定格式。

以下代碼將數(shù)字格式設置為“00"。

JSpinner.NumberEditor Editor = new JSpinner.NumberEditor(numberSpinner,“00");numberSpinner.set Editor(Editor);

以下代碼將日期格式設置為mm / dd / yyyy

JSpinner.DateEditor dEditor = new JSpinner.DateEditor(dateSpinner,  "mm/dd/yyyy");
dateSpinner.setEditor(dEditor);

我們可以使用JSpinner或SpinnerModel定義的getValue()方法來獲取JSpinner中的當前值作為對象。

SpinnerNumberModel和SpinnerDateModel定義了getNumber()和getDate()方法,分別返回Number和Date對象。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號