|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,js明天用了一下JDK1.4中新增的JSpinner,它可以便利地选择日期、数字或列表中的选项。
JSpinner示例
用户利用组件或键盘上的上移和下移箭头举行选择。他们也可输出本人的选择。但是,与JComboBox分歧,JSpinner不供应下拉列表选择,以是各个选择和它们的按次应有必定的意义。
要利用类,可复杂地创立一个供选择的元素汇合(在List或数组中),从列表中创立一个SpinnerModel,并为模子创立一个JSpinner:
清单1.复杂的JSpinner用法
String[]months=newDateFormatSymbols().getMonths();
SpinnerModelmodel=newSpinnerListModel(months);
JSpinnerspinner=newJSpinner(model);
依据您所用的输出范例,有以下几个可用于创立组件数据模子的匡助类:
SpinnerDateModel:用于承受日期输出。该类撑持经由过程将Calendar类中的常数设置为分歧的值来变动日期;比方,Calendar.WEEK_OF_MONTH每次将日期变动一周。
SpinnerListModel:用于承受来自值列表的输出。
SpinnerNumberModel:用于承受已设定好步长的必定局限内的数字(int或double)的输出。
每一个SpinnerModel实行取决于用于输出值的编纂器。此编纂器必需是一个JComponent;体系界说的编纂器子类JSpinner.DefaultEditor。个中一个可用于每一个模子:
JSpinner.DateEditor:用于SpinnerDateModel。同意您定制输出日期格局。
JSpinner.ListEditor:用于SpinnerListModel。撑持type-ahead来对值举行定位。
JSpinner.NumberEditor:用于SpinnerNumberModel。同意您定制十进制格局的形式。
事务处置
JSpinner组件象别的Swing组件一样事情。假如您有乐趣查出用户变动选择的工夫,请连一个侦听器。关于JSpinner,侦听器是一个ChangeListener,您可间接将其连到JSpinner或其SpinnerModel上。固然您可将侦听器连到二者中的恣意一个,当值产生变动时,ChangeEvent的源老是SpinnerModel:
清单2.JSpinner事务侦听
ChangeListenerlistener=newChangeListener(){
publicvoidstateChanged(ChangeEvente){
SpinnerModelsource=(SpinnerModel)e.getSource();
System.out.println("Thevalueis:"+source.getValue());
}
};
model.addChangeListener(listener);
一个完全的示例
让我们来看一下利用全体三种分歧的spinner模子的示例(清单3)。列表模子利用从DateFormatSymbols类掏出的月份称号集。日期模子示例变动编纂器的输出格局。当利用该字段中间的箭头时,每次也可将日期挪动一周。数字模子示例让用户拔取从0到100之间的一个数字,当利用箭头时每次跳5个数。请注重:用户可输出恣意数字,而其实不仅限于5的倍数。
关于一切组件来讲,当每一个spinner值的确产生变动时,所连的侦听器将显现统一改动。假如利用光标键变动月、日或年,您会注重到直到按下回车键这些值才产生变动。
清单3.JSpinner完全示例
importjavax.swing.*;
importjavax.swing.event.*;
importjava.text.*;
importjava.awt.*;
importjava.util.*;
publicclassSpinner{
publicstaticvoidmain(Stringargs[])throwsException{
JFrameframe=newJFrame("Spinner");
frame.setDefaultCloseOperation(3);
String[]months=newDateFormatSymbols().getMonths();
SpinnerModelmodel=newSpinnerListModel(months);
JSpinnerspinner=newJSpinner(model);
frame.getContentPane().add(spinner,BorderLayout.NORTH);
SpinnerDateModelmodel2=newSpinnerDateModel();
model2.setCalendarField(Calendar.WEEK_OF_MONTH);
JSpinnerspinner2=newJSpinner(model2);
JSpinner.DateEditoreditor2=newJSpinner.DateEditor(
spinner2,"MMMMMdd,yyyy");
spinner2.setEditor(editor2);
frame.getContentPane().add(spinner2,BorderLayout.SOUTH);
SpinnerNumberModelmodel3=newSpinnerNumberModel(50,0,100,5);
JSpinnerspinner3=newJSpinner(model3);
frame.getContentPane().add(spinner3,BorderLayout.CENTER);
ChangeListenerlistener=newChangeListener(){
publicvoidstateChanged(ChangeEvente){
SpinnerModelsource=(SpinnerModel)e.getSource();
System.out.println("Thevalueis:"+source.getValue());
}
};
model.addChangeListener(listener);
model2.addChangeListener(listener);
model3.addChangeListener(listener);
frame.pack();
frame.show();
}
}
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。 |
|