WordPress.com



[pic]

zipField = new JFormattedTextField(

createFormatter("#####"));

...

protected MaskFormatter createFormatter(String s) {

MaskFormatter formatter = null;

try {

formatter = new MaskFormatter(s);

} catch (java.text.ParseException exc) {

System.err.println("formatter is bad: " + exc.getMessage());

System.exit(-1);

}

return formatter;

}

import javax.swing.text.*;

String[] values = {"one", "two", "free", "four"};

SpinnerModel model = new SpinnerListModel(values);

Jspinner numeros = new Jspinner(model);

SpinnerNumberModel

The SpinnerNumberModel supports sequences of numbers which can be expressed as double objects, int objects, or Number objects. You can specify the minimum and maximum allowable values, as well as the step size — the amount of each increment or decrement. The Year spinner uses this model, created with the following code:

SpinnerModel model =

new SpinnerNumberModel(currentYear, //initial value

currentYear - 100, //min

currentYear + 100, //max

1); //step

SpinnerDateModel

The SpinnerDateModel supports sequences of Date objects. You can specify the minimum and maximum dates, as well as the field (such as Calendar.YEAR) to increment or decrement. Note, however, that some types of look and feel ignore the specified field, and instead change the field that appears selected. The Another Date spinner uses this model, created with the following code:

Date initDate = calendar.getTime();

calendar.add(Calendar.YEAR, -100);

Date earliestDate = calendar.getTime();

calendar.add(Calendar.YEAR, 200);

Date latestDate = calendar.getTime();

model = new SpinnerDateModel(initDate,

earliestDate,

latestDate,

Calendar.YEAR);

package components;

/*

* This application demonstrates using spinners.

* Other files required:

* SpringUtilities.java

* CyclingSpinnerListModel.java

*/

import javax.swing.*;

import java.awt.Color;

import java.awt.Container;

import java.util.Calendar;

import java.util.Date;

public class SpinnerDemo extends JPanel {

public SpinnerDemo(boolean cycleMonths) {

super(new SpringLayout());

String[] labels = {"Month: ", "Year: ", "Another Date: "};

int numPairs = labels.length;

Calendar calendar = Calendar.getInstance();

JFormattedTextField ftf = null;

//Add the first label-spinner pair.

String[] monthStrings = getMonthStrings(); //get month names

SpinnerListModel monthModel = null;

if (cycleMonths) { //use custom model

monthModel = new CyclingSpinnerListModel(monthStrings);

} else { //use standard model

monthModel = new SpinnerListModel(monthStrings);

}

JSpinner spinner = addLabeledSpinner(this,

labels[0],

monthModel);

//Tweak the spinner's formatted text field.

ftf = getTextField(spinner);

if (ftf != null ) {

ftf.setColumns(8); //specify more width than we need

ftf.setHorizontalAlignment(JTextField.RIGHT);

}

//Add second label-spinner pair.

int currentYear = calendar.get(Calendar.YEAR);

SpinnerModel yearModel = new SpinnerNumberModel(currentYear, //initial value

currentYear - 100, //min

currentYear + 100, //max

1); //step

//If we're cycling, hook this model up to the month model.

if (monthModel instanceof CyclingSpinnerListModel) {

((CyclingSpinnerListModel)monthModel).setLinkedModel(yearModel);

}

spinner = addLabeledSpinner(this, labels[1], yearModel);

//Make the year be formatted without a thousands separator.

spinner.setEditor(new JSpinner.NumberEditor(spinner, "#"));

//Add the third label-spinner pair.

Date initDate = calendar.getTime();

calendar.add(Calendar.YEAR, -100);

Date earliestDate = calendar.getTime();

calendar.add(Calendar.YEAR, 200);

Date latestDate = calendar.getTime();

SpinnerModel dateModel = new SpinnerDateModel(initDate,

earliestDate,

latestDate,

Calendar.YEAR);//ignored for user input

spinner = addLabeledSpinner(this, labels[2], dateModel);

spinner.setEditor(new JSpinner.DateEditor(spinner, "MM/yyyy"));

//Lay out the panel.

SpringUtilities.makeCompactGrid(this,

numPairs, 2, //rows, cols

10, 10, //initX, initY

6, 10); //xPad, yPad

}

/**

* Return the formatted text field used by the editor, or

* null if the editor doesn't descend from JSpinner.DefaultEditor.

*/

public JFormattedTextField getTextField(JSpinner spinner) {

JComponent editor = spinner.getEditor();

if (editor instanceof JSpinner.DefaultEditor) {

return ((JSpinner.DefaultEditor)editor).getTextField();

} else {

System.err.println("Unexpected editor type: "

+ spinner.getEditor().getClass()

+ " isn't a descendant of DefaultEditor");

return null;

}

}

/**

* DateFormatSymbols returns an extra, empty value at the

* end of the array of months. Remove it.

*/

static protected String[] getMonthStrings() {

String[] months = new java.text.DateFormatSymbols().getMonths();

int lastIndex = months.length - 1;

if (months[lastIndex] == null

|| months[lastIndex].length() ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download