实验四图形用户界面设计Word文件下载.docx
《实验四图形用户界面设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验四图形用户界面设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
JComboBoxfontType;
//字体样式下拉框,
JComboBoxfontSize;
//字体大小下拉框
JComboBoxwindowStyle;
//窗体样式下拉框
JCheckBoxboldBx;
//粗体按钮
JCheckBoxitalicBx;
//斜体按钮
JButtoncolorBtn;
//颜色按钮;
String[]fontNames;
//字体名称;
String[]fontSizes;
//字体大小;
JLabellabel;
//输入提示标签;
JTextFieldinputText;
//文字输入框;
JTextAreatxtArea;
//文字显示区;
JPanelnorthPanel;
//字体设置;
JPanelcenterPanel;
//显示效果区
JPanelsouthPanel;
//样式设置
Fontfont;
intboldStyle,italicStyle,underlineStyle;
intfontSizeStyle;
StringfontNameStyle;
ColorcolorStyle=Color.black;
//设置字体的默认颜色为黑色;
String[]style={"
默认显示效果"
"
Windows显示效果"
Unix显示效果"
};
publicArtFont(){
super("
字体设置"
);
//设置默认字体
boldStyle=0;
italicStyle=0;
underlineStyle=0;
fontSizeStyle=10;
fontNameStyle="
宋体"
;
font=newFont(fontNameStyle,boldStyle+italicStyle,fontSizeStyle);
northPanel=getNorthPanel();
centerPanel=getCenterPanel();
southPanel=getSouthPanel();
//设置容器;
Containercontainer=getContentPane();
container.setLayout(newBorderLayout());
【补充代码】//将northPanel添加到窗体的北部
【补充代码】//将centerPanel添加到窗体的中部
【补充代码】//将southPanel添加到窗体的南部
setSize(500,300);
【补充代码】//将窗体位于屏幕的中央
setVisible(true);
}
privateJPanelgetNorthPanel(){
JPanelpanel=newJPanel();
returnpanel;
privateJPanelgetCenterPanel(){
privateJPanelgetSouthPanel(){
}
publicstaticvoidmain(Stringargs[]){
ArtFontartFont=newArtFont();
artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
2)根据ArtFont类代码和程序界面图设计北部面板northPanel:
JPanelpanel=newJPanel();
【补充代码…】
}
3)根据ArtFont类代码和程序界面图设计中部面板centerPanel:
4)根据ArtFont类代码和程序界面图设计南部面板southPanel:
//获得系统默认字体
GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
fontNames=ge.getAvailableFontFamilyNames();
fontType=newJComboBox(fontNames);
//设置字体大小
fontSizes=newString[63];
for(inti=0;
i<
fontSizes.length;
i++){
fontSizes[i]=Integer.toString(i+10);
}
5)调试、编译和运行程序,并显示正确界面。
2.日历应用程序设计
编写一个应用程序,设计一个窗体,该窗体为BorderLayout布局。
窗体的中心添加一个Panel容器:
Panel容器的布局是7行7列的GridLayout布局,Panel容器中放置49个标签,用来显示日历。
窗口的北面添加一个Panel容器,其布局是FlowLayout布局,Panel容器中放置两个按钮:
nextMonth和previousMonth。
窗口的南面添加一个Panel容器,其布局是FlowLayout,Panel容器中放置一个标签用来显示一些信息。
1)编写CalendarBean类,实现日期类:
publicclassCalendarBean{
Stringday[];
intyear=2021,month=0;
publicvoidsetYear(intyear){
this.year=year;
publicintgetYear(){
returnyear;
publicvoidsetMonth(intmonth){
this.month=month;
publicintgetMonth(){
returnmonth;
//返回某年某月1号开场的日期数组
publicString[]getCalendar(){
Stringa[]=newString[42];
Calendar日历=Calendar.getInstance();
//注意:
1月份是从0开场,所以要减1
日历.set(year,month-1,1);
int星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
intday=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
day=31;
if(month==4||month==6||month==9||month==11){
day=30;
if(month==2){
if(((year%4==0)&
&
(year%100!
=0))||(year%400==0)){
day=29;
}else{
day=28;
for(inti=星期几,n=1;
星期几+day;
a[i]=String.valueOf(n);
n++;
returna;
2)补充代码,完成日历窗体界面类设计:
publicclassCalendarFrameextendsFrame{
LabellabelDay[]=newLabel[42];
LabellabelYear;
ButtontitleName[]=newButton[7];
ButtonnextMonth,previousMonth;
LabelshowMessage;
TextFieldinputYear;
CalendarBeancalendar;
Stringname[]={"
日"
一"
二"
三"
四"
五"
六"
intyear=2021,month=1;
Stringdays[];
publicCalendarFrame(){
calendar=newCalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
days=calendar.getCalendar();
ScrollPanescrollPane=newScrollPane();
scrollPane.add(getCenterPanel());
【补充代码】//窗口添加scrollPane在中心区域
【补充代码】//窗口添加pNorth在北面区域
【补充代码】//窗口添加pSouth在南区域。
privatePanelgetNorthPanel(){
Panelpanel=newPanel();
privatePanelgetCenterPanel(){
【补充代码】//将panel的布局设置为7行7列的GridLayout布局
7;
titleName[i]=newButton(name[